• 締切済み

配列を扱う関数についての質問です。

配列の名前を取得する関数はありますか? 質問の意味がわかりにくいと思いますので簡単に説明すると・・・ *********************************************************** たとえば $test[0]=5 という配列があった場合 「test」という名前を出力させたいです *********************************************************** わかりにく質問かとは思いますがぜひよろしくおねがいします(>_<)

  • PHP
  • 回答数2
  • ありがとう数2

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

>たとえば多次元配列のときわかりやすい例として以下のようにするとき > >$food = array( > "vegetable" => array( >    "carrot" => "にんじん", >    "tomato" => "トマト", >    "onion" => "たまねぎ" >  ), > "fruit" => array( >    "apple" => "りんご", >    "orange" => "オレンジ", >    "grape" => "ぶどう" >  ) > ); > >「vegetable」または「fruit」を出力させたいんです。 であれば、   foreach ($food as $key=>$array) {     print $key . "<br />";     } でいいと思います。 #これは単に連想配列のキー(添字)ですから(汗

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

配列の名前というか「変数名」ですよね?こればかりはスクリプトを書いた本人がわかっている(というか本人だけがわかっていればいい)ことだと思いますが、どういう状況でそれを表示する必要があるんでしょう?そのあたりを補足してください。

lance_104
質問者

補足

たとえば多次元配列のときわかりやすい例として以下のようにするとき ********************************************* $food = array( "vegetable" => array( "carrot" => "にんじん", "tomato" => "トマト", "onion" => "たまねぎ" ), "fruit" => array( "apple" => "りんご", "orange" => "オレンジ", "grape" => "ぶどう" ) ); ********************************************** 「vegetable」または「fruit」を出力させたいんです。 説明が下手ですいません(>_<)

関連するQ&A

  • 関数の配列はできないでしょうか。

    ひとつの関数で、出力を配列のように複数させたいのですが、できないでしょうか。

  • 配列を関数の戻り値に使う

    こんばんわ。 PHP5で配列を関数の戻り値として返す方法がわからず今回投稿させていただきました。 配列は1次元で 1,2,3 の値が a という配列に格納されています。 呼び出された関数(testメソッド)で a配列を返し、bで受けようとするのですが、bの値には NULL となっています。 返す際に return $a; としており、 $b=$obj-〉test(); で、aをbで受けようと考えております。 配列を返す場合は普通にretuneで返すだけではダメなのでしょうか。 解決方法がお分りの方がいらっしゃいましたらご教授のほうおねがいします。

    • ベストアンサー
    • PHP
  • 改行させずに文字配列を出力させる関数

    改行させずに文字配列を出力させる関数は、printf以外にありますか? printf("Hello world!!"); //改行せずに出力 char str[]="Hello world!!"; puts(str); //改行されて出力 出力の最後に自動的に改行文字を追加しないで、文字配列を表示する標準関数って、printf以外にありますか? もしくは、改行されない関数が必要な場合は自作するしかありませんか?

  • 配列の初期化

    表題の件で質問があります。 //------------------------------------// $A_array = array("1", "2", "3"); $B_array = array("9", "8"); for($cnt=0;$cnt<count($A_array);$cnt++){ $test[] = $A_array[$cnt]; } for($cnt=0;$cnt<count($B_array);$cnt++){ $test[] = $B_array[$cnt]; } ※わかりやすいようの簡単に書いてみました。 //------------------------------------// 上記の処理の場合配列testには ("9", "8", "3")となってしまい、 ("9","8")のデータを取得できません。 簡単に言うと配列名を使いまわししたいと考えています。関数かなにかで配列の中身を初期化するような ものはありますでしょうか?

    • 締切済み
    • PHP
  • 関数に配列を渡すときの質問です

    関数に配列を渡したいんですがこのソースが問題ないか見てください。 #include<stdio.h> #define N 10 #define M 20 int sig(int X[],int x); main() { int a[N],b[M],i,x,y; for(i=0 ; i<N ; i++){ a[i]=i; } for(i=0 ; i<M ; i++){ b[i]=i; } x=sig(a,N); y=sig(b,M); } int sig(int Z[],int x){ int i,k; k=0; for(i=0 ; i<x ; i++){ k=k+Z[i]; } return k; } ソースは以上です。 1つのソースの中でa[N]とb[M]のように違う数の 配列があるんですが、その配列全部(0~N-1、0~M-1)とかを足してくれる(シグマ)関数を作りたいんですが、Z[]と配列の数を指定しなくてもちゃんと動いてくれるんでしょうか?関数のほうの int x で配列の数を指定するようにしています。 自分でテストした限りではちゃんと動いているようなんですが、間違ってるようなら指摘お願いします。

  • 配列を関数に渡したいのですが…

    次のように配列を関数に渡したいのですが、うまく出来ません。どのようにしたら良いのでしょうか? 渡したい配列の個数は、偶数個ですが、未知の個数です。 $A_LINK = A_LINK("TEST_NAME", "TEST_VAL"); function A_LINK($array) { while (count($array) > 0) { $name = array_shift($array); $value = array_shift($array); $name = urlencode($name); $value = urlencode($value); $msg .= "$name=$value"; } return $msg; }

    • ベストアンサー
    • PHP
  • この配列は何形式と呼びますか

    PHPにて以下のような配列を処理しようとしています。 a:2:{s:4:"name";s:10:"名前が入る";s:4:"text";s:1226:"ここは説明文が入る";} まず、この配列は何形式と呼ばれるものでしょうか? 次に、配列に入れ直したいのですが、簡単に変換できる関数なんてありますでしょうか? 具体的にはこんな感じの配列へ変換できれば と思っています。↓↓ $array['name'] = "名前が入る"; $array['text'] = "ここは説明文が入る"; ---------------------------------------- a:2:{  s:4:"name";  s:10:"名前が入る";  s:4:"text";  s:1226:"ここは説明文が入る"; } たぶん、 a:2 が2つの組があるよって意味で s:4 がサイズを表しているんじゃないかと思うのですが…。 どなたかお助けください。

    • ベストアンサー
    • PHP
  • 配列を書き換える関数を作成してみたいのですが、

    配列を書き換える関数を作成してみたいのですが、 int a[10]={3,5,7,6,7,8,10,2,3,11}; 上記のような配列があるとして、 0~9のうち特定の添字を指定して、a[]の中身を書き換える関数を作る場合は、 どのような方法があるのでしょうか?

  • C言語 配列を交えた関数

    C言語にて配列を絡めた関数を作っています 配列には後にそれぞれの値を与えるのですが double total(int n){ int i; double total = 0; int y[NUMBER] ={0}; for (i = 0 ; i < n ; i++) { tota = tota + (combination(n,i) * power(i) * y[n - i]);} return (tota); } combinationは順列nCi powerは-1^iを表してあり 別々に表示させた場合問題なく出力されます printf("%lf\n" , res + combination(1,0) * power(0) * y[1] + combination(1,1) \ * power(1) * y[0] のようにして実行した場合もただしくでます しかしこれだとtotalを出力させたとき0となり(関数内で配列を初期化させているため?)={0}を消すと出力時に恐ろしい桁の数になってしまいます この関数をうまく作動させるための改善案をご指導願えませんか?情報不足で判断できない場合補足にて追加させていただきます 当方C言語初心者のため詳しくお願いいたします

  • 関数から配列を返すには?

    return で配列を返すにはどうしたらよいのでしょうか。 例えば以下のような場合です。 int main (){ char Value[] = "999"; int a;  a = test(Value);  printf ("%d", a);   } int test(char *Value) { int nVal[255]; ここで nVal に適当な処理をして・・・  return Value; }  int a を配列とかにしてみましたけど、コンパイラが 通りません。 要は配列数値を main で受け取って表示したいのですが、 本日C言語はじめたところなので、教えていただければありががたいです。

専門家に質問してみよう