- ベストアンサー
配列についてです(PHP)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>$a=array(1,2,3); の 1,2,3 は (各要素の)値 この場合 $a[0] =1; $a[1] =2; $a[2] =3; と等しいが $a[0] が要素 $a[0] に代入されている 1 が要素$a[0]の値 []で囲まれた 0 が添え字(キー) $a=array("a"=>1,"b"=>2,"c"=>3); の場合 $a["a"] が要素 $a["a"] に代入されている 1 が要素の値 $a["a"] の "" で囲まれた a が添え字(キー) http://c-brains.jp/blog/wsg/08/04/14-192257.php
関連するQ&A
- 【PHP】配列を連想配列に
$m = array('a', 'b', 'c'); この配列 $m をもとに $n = array( 'a' => array( 'b' => array( 'c' => array()))); 上のような連想配列 $n をつくりたいのですが、 $n = array( $m[0] => array( $m[1] => array( $m[2] => array()))); 要素の数が固定のときは、これでもいいのですが、数が変動する場合に対応できません。 何か方法があれば教えてください。
- ベストアンサー
- PHP
- 2つの配列から新しい配列を作成したい
「Array A B」より「Array C」を作成したいのですが、どうしたらいいでしょうか? ※「Array A」キーと「Array B」idキーの値を結び付けたい Array A ( [3] => 3 [1] => 15 [4] => 3 [2] => 6 ) Array B ( [0] => Array ( [id] => 1 [area] => 東京 ) [1] => Array ( [id] => 2 [area] => 大阪 ) ) ↓ Array C ( [0] => Array ( [1] => 15 [area] => 東京 ) [1] => Array ( [2] => 6 [area] => 大阪 ) )
- ベストアンサー
- PHP
- [PHP]配列におけるインデックスの考え方
$scores = [10, 50, 30, 20]と言った配列があるとします。 配列内の10の値を取りだそうとすれば print $scores[0]; とすればブラウザに10の値が表示されます。 というか、配列というのは、[0][1][2][3]…と数えるものだと思っていました。 今、array_fill()関数について学習しています。 $prices = array_fill(0, 5, 10); としてprint_rで出力すると Array ( [0] => 10 [1] => 10 [2] => 10 [3] => 10 [4] => 10 ) と自分で理解できる範囲の結果が表示されます。 ところが、 $prices = array_fill(-2, 5, 10); をprint_rで出力すると以下のように返ってきます。 Array ( [-2] => 10 [0] => 10 [1] => 10 [2] => 10 [3] => 10 ) 単純に考えると、以下のように返ってこないのはなぜなのでしょうか? Array ( [-2] => 10 [-1] => 10 [0] => 10 [1] => 10 [2] => 10 ) また $prices = array_fill(5, 5, 10); と記述すると、 Array ( [5] => 10 [6] => 10 [7] => 10 [8] => 10 [9] => 10 ) と返ってきます。 配列のインデックス、添字を名前や商品名にして連想配列が出来るのはわかります。 (1)マイナス値からはじめた場合、なぜ[-2][-1][0]…のように返ってこないのはなぜでしょうか? (2)配列の添え字、インデックスが、[5]ではじまり[6][7][9][10]…とすることに 何か意味があるのでしょうか? $prices = [10, 10, 10, 10, 10]のような記述があった場合、初学者には[0]からはじまっているからこそ array_spliceなどでキー名がわからずとも、配列を操作を容易にできるのではないかと思ってしまいます。 上記2点、配列内でのマイナス値の扱い方、配列の添字が[0]以外からはじまる理由がよくわかりません。 分かる方いらっしゃいましたら教えて下さい。よろしくお願いいたします。
- ベストアンサー
- PHP
- 2つの配列/キーが一致する際、要素数の出現回数を求
2つの配列があり、かつキーが一致する際、要素数の出現回数を求めたいのですが、 どうすれば良いでしょうか? 具体的には、下記「a、b」より「c、d」を導き出したいです ■元データ( a、b キーは対応) Array a ( [0] => 1 [1] => 2 [2] => 2 [3] => 1 [4] => 3 [5] => 1 [6] => 2 [7] => 2 [8] => 3 [9] => 1 ) Array b ( [0] => 0 [1] => 1 [2] => 0 [3] => 1 [4] => 1 [5] => 1 [6] => 1 [7] => 0 [8] => 2 [9] => 1 ) ■欲しい結果 Array c … 「Array b」が1の時の、「Array a」の値の出現回数(キーは「Array a」の値) ( [1] => 3 [2] => 2 [3] => 1 ) Array d … 「Array b」が1以外(0または2)の時の、「Array a」の値の出現回数(キーは「Array a」の値) ( [2] => 2 [1] => 1 [3] => 1 ) ■備考 「Array b」が1の時の「Array a」 [1] => 2 [3] => 1 [4] => 3 [5] => 1 [6] => 2 [9] => 1 ・1が3回 ・2が2回 ・3が1回 「Array b」が1以外の時の「Array a」 [0] => 1 [2] => 2 [7] => 2 [8] => 3 ・2が2回 ・1が1回 ・3が1回
- ベストアンサー
- PHP
- 配列(int)要素同士の合計、割り算
配列(int)要素同士の合計、割り算は、どうやってするのでしょうか? ■元データ Array a ( [2] => 2 [1] => 4 [3] => 1 ) Array b ( [1] => 2 [2] => 2 [3] => 1 ) ■導きたい結果1 … キーが同じ場合に、aとbの合計したい Array c ( [1] => 6 [2] => 4 [3] => 2 ) ■導きたい結果2 … キーが同じ場合に、aをcで割りたい(そして、✕100・四捨五入したい) Array d ( [1] => 67 4/6=0.666 [2] => 50 2/4 [3] => 50 1/2 )
- ベストアンサー
- PHP
- 配列から別の配列の要素を削除する方法
ある配列array_aに、100件の文字列要素が格納されています。 別の配列array_bには、80件の文字列要素が格納されています。 array_aの要素、array_bの要素共に重複するものはありません。 array_b中に存在する要素はすべてarray_a中にも存在します。 array_aにあり、array_bにはない要素で構成されたarray_cの作り方を教えてください。 例えば $array_a=array("a","b","c","d","e","f","g"); $array_b=array("e","b","d"); なら、 $array_c=array("a","c","f","g") になります。 配列array_aとarray_bは、 $array_b=array("b","b","d"); であったり、 $array_a=array("a","a","b","c","d","e","f","g"); といった「重複する要素を含むパターン」はありません。要素はすべてユニークです。 よろしくお願いいたします。
- ベストアンサー
- PHP
- 配列を比較して同じものがあった場合にそのKEYを返す
二つの配列を比較して同じ値が入っていた場合、そのKEYを配列に入れたいと思います。 (例)$aと$bを比較して同じ値が入っているときに$aのkeyを$cに格納したい。 $a = array("","","山","","川","海","","富士山","空","",""); $b = array("川","","","","","海","","富士山","空",""); ※空白は無視したい。 この場合 $c = array("4","5","7","8"); のようにしたいと思います。 どなたか教えてください。
- ベストアンサー
- PHP
- JavaScriptの連想配列について
myArray = new Array(); myArray["A001"] = new Array(); myArray["A001"]["B001"] = "B001"; myArray["A001"]["B002"] = new Array(); myArray["A001"]["B002"]["C001"] = "C001"; myArray["A001"]["B002"]["C002"] = "C002"; myArray["A002"] = "A002"; JavaScriptの連想配列について質問させて頂きます。 例えば上記のような配列があったとして、値とキーはそのままで "C001" と "C002" の"B002"配列への格納順序だけ入れ替えたい場合、 どのように実装すればよろしいでしょうか? ちなみにキーや値はサンプルで実際にはsort出来るルールはありません。。。 ※入れ替え後のイメージ --------------------------------------------------------------------- myArray = new Array(); myArray["A001"] = new Array(); myArray["A001"]["B001"] = "B001"; myArray["A001"]["B002"] = new Array(); myArray["A001"]["B002"]["C002"] = "C002"; ←格納順序が myArray["A001"]["B002"]["C001"] = "C001"; 入れ替わった myArray["A002"] = "A002"; ---------------------------------------------------------------------
- 締切済み
- JavaScript
- PHPの配列について
PHPの配列についての質問です。 以下のソースを // == ソース == function hoge( $foo ) { $arrs['a'] = 'A'. $foo; $arrs['b'] = 'B'. $foo; $arrs['c'] = 'C'. $foo; $arrs['d'] = 'D'. $foo; } hoge( '3' ); hoge( '9' ); // == /ソース == 実行すると print_rは // == print_r == Array ( [a] => A3 [b] => B3 [c] => C3 [d] => D3 ) Array ( [a] => A9 [b] => B9 [c] => C9 [d] => D9 ) // == /print_r == のようになります。 これを 関数を実行するごとに (0から IDのような 配列を組むようにする) 以下のようにするには どのようにすればよいでしょうか? // == print_r == Array ( [0] => Array ( [a] => A3 [b] => B3 [c] => C3 [d] => D3 ) [1] => Array ( [a] => A9 [b] => B9 [c] => C9 [d] => D9 ) ) // == /print_r == 使用目的は get_contentsしたものを正規表現で取り出し 配列にする処理に使おうと思っています。
- ベストアンサー
- PHP
- 空の配列を削除して、詰めていく。
データベースから値を取ってくるとき、全て、同じ値が入ってくる場合があります。 $a = array(100,100,100,100,100)というような。 これを、array_uniqueで重複している値を削除したのですが、その際、print_rで見ると、 Array ( [4] => 100 ) と表示されました。つまり、キーが0ではなく、4となってしまっています。 array_uniqueで帰ってきた値が複数なら、さらにsortすることで0から始まる配列として並び替えられるのですが、1つしか帰ってこないとsortをしても、キーは変わらないようです。 この値を表示させるとき、countで配列の数を数え、さらにfor文でcountの数だけ回し、print $i;で表示させるようにしているのですが、上記のようにarray_uniqueで1つの値しか帰ってこないと、ページに値がきちんと表示できなくなってしまいます。 これを解決するために、空の要素を削除して、空白でない要素のキーを前に詰めてくれるような関数などを探しているのですが、何か方法などありますでしょうか? Array ( [4] => 100 ) が Array ( [0] => 100 )となるようにしたいのです。 よろしくお願いいたします。
- 締切済み
- PHP
お礼
有難うございます。