0

タイトルが誤解を招くと思われた場合は、申し訳ありません。この質問にぴったりのタイトルが思いつきませんでした。

関数で結合する 2 つの配列があります。

$arr1['something']['secondary_something'][]="foo1";
$arr1['something']['secondary_something'][]="foo2";
$arr1['something']['secondary_something'][]="foo3";

$arr2['something']['secondary_something'][]="foo4";
$arr2['something']['secondary_something'][]="foo5";

function something($array_, $array_new) {

$array=array_merge_recursive($array_,$array_new); // to combine/merge both arrays

print_r($array);//debugg

}

これで、その関数は単純にこれを出力します (これで問題ありません)。

Array ( [something] => Array ( [secondary_something] => Array ( [0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5 ) ) )

しかし、プライマリ アレイにマージされた新しいデータを処理する必要があります。だから私は働く必要がありますが$arr2、それが一度だけマージされました$arr1

「新しいデータを操作する」必要があると言うとき、これvar_export()は配列で行う必要があることの 1 つです。

単に a を実行すると、次のecho var_export($array_new,true);ようになります。

array ( 'something' => array ( 'secondary_something' => array ( 0 => 'foo4', 1 => 'foo5', ), ), )

これが必要なとき:

array ( 'something' => array ( 'secondary_something' => array ( 3 => 'foo4', 4 => 'foo5', ), ), )

^^ 配列のキーが 1 と 2 ではなく 3 と 4 になっていることに注意してください$arr1

私がやろうとしていることを皆さんが理解してくれることを願っています。

何か案は?

ありがとうxD

4

1 に答える 1

0
echo var_export(array_intersect($array['something']['secondary_something'], $arr2['something']['secondary_something']), true);

編集これは機能しますが、配列の多次元の側面が失われます。var_export でsomethingandアスペクトを保持する場合は、配列全体をステップ実行する再帰関数を記述する必要があります。secondary_something

于 2012-04-20T13:18:07.130 に答える