phpについて質問です。 連想配列を結合させたいのですが、配列の量が多すぎてarray_merge()に書き込むのがしんどいです。イメージとしては①を②に変える感じですが、②が間違っているようです。どこが間違っているのでしょうか?または他にいい方法はありませんか? $array = [ ['name'=>'orange','name2'=>'mikan'], ['name'=>'apple', 'name2'=>'ringo'], ['name'=>'grape', 'name2'=>'budou'], …(略)… ]; foreach($array as $item){ ${$item['name']} = abc($item['name2']);//abc()は連想配列になる関数 } //① $total = array_merge( $orange, $apple, $grape …(略)… ); //② foreach($array as $item){ $total += ${$item['name']}; }

PHP64閲覧xmlns="http://www.w3.org/2000/svg">100

2人が共感しています

ベストアンサー

この回答はいかがでしたか? リアクションしてみよう

お返事ありがとうございます。 Notice: Undefined variable: total Fatal error: Unsupported operand types という未定義エラーが出ていました。 $total += ${$item['name']};から$total += abc($item['name2']);に変えても上記と同じ未定義エラーがでました。 abc()内で配列の足し算の前処理をしている自覚はないです。 Unsupported operand typesを調べましたが配列を足すことができない"文字"等が入っているということでしょうか?(たしかに配列内は文字や数値が入り乱れてます)だとしたらそれを直さなくてはいけないのでしょうか? 直さないで繋げる方法はないですか? array_mergeでは可能なのに+=では無理なのが不思議です。

ThanksImg質問者からのお礼コメント

成功しました(涙) これで作業が楽になります。 abc()内は自分でも混乱するほど量が莫大なので(無駄に莫大だと思いますが)、ここに載せられないため説明がわかりにくくなってしまい大変失礼しました。 いつもありがとうございます。

お礼日時:8/25 21:34