• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:array_combine()について)

PHPのarray_combine()を使った配列のまとめ方と取り出し方

wave117の回答

  • ベストアンサー
  • wave117
  • ベストアンサー率100% (5/5)
回答No.3

やりたいことがいまいちよくわからないのですが、各配列の同じ順番の要素に対して処理を行いたいとすれば以下でどうでしょうか? $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $hoge = array('100', '150', '80'); $cnt = count($a); for($i=0;$i<$cnt;$i++){ $ai = $a[$i]; $bi = $b[$i]; $hogei = $hoge[$i]; }

Search_tmp
質問者

お礼

ありがとうございます! シンプルな記述で私にも理解できます。 複雑に考えていて遠回りしていたようです。

関連するQ&A

  • foreachがうまく動かない

    $fruits = array( array( "name" => "apple", "color" => "red", ... ), array( "name" => "banana", "color" => "yellow", ... ), ... ); foreach ($fruits as $fruit) { echo "名前:$fruit['name']<br \/>"; echo "色:$fruit['color']<br \/>"; ... } で、 名前:apple 色:red ... のように表示させたいのですが、きちんと動きません。 どこが間違っているのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • array_combineがうまくいかないので、教

    array_combineがうまくいかないので、教えてください ■やりたいこと ・一方の配列をキー、もう一方の配列を値として、新たな配列を生成したい ■現状 $c = array_combine($a , $b);とやると、 Array c (   [1] => 2   [2] => 0   [3] => 0 ) となってしまいます ■元データ 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] => 2   [2] => 0   [3] => 2   [4] => 2   [5] => 0   [6] => 2   [7] => 0   [8] => 0   [9] => 2 ) ■質問 ・元データから、下記結果を得るにはどうすればよいでしょうか? Array c (   [1] => 0   [2] => 2   [2] => 0   [1] => 2   [3] => 2   [1] => 0   [2] => 2   [2] => 0   [3] => 0   [1] => 2 ) ・また、array_combineだとなぜ望む結果が得られないのでしょうか? 重複しているから?

    • ベストアンサー
    • PHP
  • phpで配列の重複する項目を多い順に並べたいです!

    $a = array("hoge","piyo","hoge","banana","hoge","piyo"); ↓ $b = array("hoge","piyo","banana"); みたいな配列があったとき、上のように重複する項目をまとめて、 さらに多い順に並び替えるにはどのようなコードを書けば良いですか?

    • ベストアンサー
    • PHP
  • arrayである値を持った要素のみを削除するすっきりした方法。

    PHP4で,ある値を持った要素のみを削除したarrayをかえしたいのですが,たとえば,[d]と[e]をいう値をもった要素を削除したい場合, $a = array("a", "b", "c", "d", "e"); $eraseitem = array("d", "e"); $new_a = array(); foreach($a as $value); { if (!in_array($value, $erasesitem)) { $new_a[] = $value; } } とすれば,削除できますが,ほかに何かいい方法はないでしょうか。(デフォルトの関数などを使用してすっきりとできないのでしょうか。) 詳しい方,よろしくお願いします。

    • ベストアンサー
    • PHP
  • mysql_fetch_arrayを何度も使いたい

    phpとmysqlを使っています。 配列$valuesがあります。 その値は一部だけmysqlのフィールドdの中に格納しています。 両方の値を比較してもし一致すればチェックボックスを作るという処理をしています。 また、同時に一致した数もそれぞれ取得したいと考えています。 イメージ的には、□はチェックボックスとして()には、その配列の値とフィールドdの値に一致する数が入ります。 □(33) □(13) □(1) □(22) □(3)  □(16) □(15) □(9) □(23) □(32)  □(4) □(16) □(7) □(6) □(11)  □(5) □(21) □(1) □(4) □(15)  □(13) □(10) □(3) □(19) □(8)  □(0)のとき非表示になるようにしています。 <?php $m = mysql_connect('localhost','root',password); $mm = "SELECT * FROM tableA"; mysql_set_charset('utf8'); $mmm = mysql_query($mm,$m); $values=array( "chk1"=>array("a1","a2","a3","a4","a5","a6","a7","a8","a9","a10") ,"chk2"=>array("b1","b2","b3","b4","b5","b6","b7","b8","b9","b10") ,"chk3"=>array("c1","c2","c3","c4","c5","c6","c7","c8","c9","c10") ); foreach($values as $key=>$array){ foreach($array as $val){ $checked=(isset($_REQUEST[$key]) and in_array($val,$_REQUEST[$key]))?" checked":""; $count = ""; while($r = mysql_fetch_array($mmm)){ if($val === $r['d']){$count++:} } if($count>0 && !$count==""){ $h = $h.htmlspecialchars($val, ENT_QUOTES, 'UTF-8').'<input type="checkbox" name="'.$key.'[]" value="'.$val.'"'.$checked.'/>('.$count.') '."\n"; } } } print "<br />\n"; } ?> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body> <form method="get" action="checkbox2.php"> <?php echo $h; ?> <input type="submit" value="送信" /> </form> </body> </html> これではmysql_fetch_arrayが一度しか使えないので、配列の値a2以降が進みません。 こういうときはどのようにするべきでしょうか。 また、if($val === $r['d']){$count++:}でカウントしていますが、もっといい方法はありますか。 その他変な箇所があれば指摘して頂けると嬉しいです。 お願いします。

    • ベストアンサー
    • PHP
  • 文字列になっている配列を‥

    以下の値がDBに文字列の項目に登録されています。 DB から値を取得したのはいいのですが文字列なので foreach でグルグルしようとすると怒られてしまいます。 配列の型に変換できればいいのですが(array)だとうまく行かないしどうすればいいかどなたかご教授願えないでしょうか。 よろしくお願いします。 ■値(文字列でDBに格納されてます‥) array( 1=>'a', 2=>'b', 3=>'c', 10=>array( 'A'=>1, 'B'=>'hoge1', ), 11=>array( 'A'=>2, 'B'=>'hoge2', ), 12=>array( 'A'=>3, 'B'=>'hoge3', ), )

    • 締切済み
    • PHP
  • array_randで要素が数字の場合の処理方法

    PHPのarray_randについて教えて下さい。 下記のようなソースを作りましたが思った通りの結果になりません。 //(A) $test=array(3,5,8,11,14,24,26,28); print_r($test); foreach ($test as $val) { echo $val.'<br>'; } //(B) $keys = array_rand($test, 5);//決められた数を抽出 print_r($keys).'<br><br>'; foreach ($keys as $val) { echo $val.'<br>'; } Aの部分の結果は Array ( [0] => 3 [1] => 5 [2] => 8 [3] => 11 [4] => 14 [5] => 24 [6] => 26 [7] => 28 ) foreachの部分の出力↓ 3 5 8 11 14 24 26 28 となりこれは特に問題ありません。 Bの部分でAの配列から5つランダムで取り出したいのですが、結果は Array ( [0] => 0 [1] => 3 [2] => 5 [3] => 6 [4] => 7 ) 0 foreachの部分の出力↓ 0 3 5 6 7 となってしまい、Aの配列の添え字の中から5つの数字が選ばれるようになってしまいます。 Aの添え字ではなく「3,5,8,11,14,24,26,28」の数字から5つランダムで取り出すにはどのような書き方をすればよいのでしょうか? ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • arrayをどうやって表示するのか?

    array をどうやって表示したら良いのでしょうか? 一応参考書には下記のようなコードがあってそのまま打つと普通にブラウザには出てこないので、print を文頭につけたのですが、「array 」としか出てこないので、どうしたら良いのかわかりません。当然のことながら$cだけ表示できたら良いです。どうかご教授よろしくお願いします。 $a = array(1,2,3); $b = array(1,3,4); $c = array_diff($a,$b);

    • ベストアンサー
    • PHP
  • ExcelのIF関数について教えてください。

    Excelでデータ抽出をする際の関数について。 A列の情報(文字列)と、B列の情報(文字列)の2つの組み合わせに対し、条件がある ・下記のような情報がある時、   A列   B列   Blue   Red   Blue Yellow   Red   Blue   Yellow Red   Red Green ・下記の条件、   A列   B列   Blue と Blue  は  Aグループ   Blue と Yellow は Bグループ   Blue と Red  は Cグループ   Blue と Green は Dグループ   Red と Blue  は  Aグループ   Red と Yellow は Bグループ   Red と Red  は Cグループ   Red と Green は Dグループ   ・・・つづく にあてはめて、条件の●グループを引っ張ってきたいのですが、 どのような関数を入れたらいいのでしょうか? よろしくお願いします。

  • printfの働き

    以下のCGIプログラムで、なぜprintf構文が反映されないのでしょうか? #! c:/usr/local/bin/perl $\ = "\n"; %color =("apple"=>red,"banana"=>yellow,"sky"=>blue,"tree"=>green); print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><title>CGI練習</title></head> <body> END print "<hr>"; foreach(keys(%color)){ printf("%-10s %7s<br>",$_,$color{$_}); } print <<END; </body> </html> END

    • ベストアンサー
    • CGI