以下、私は2つのPHP配列を持っています。 $all_tags
と$list_tags
2番目の配列に一致するIDのキー/値がPHPである場合に配列にデータを追加します
Iは$all_tags
アレイを反復と$list_tags
アレイにおいて同じIDと一致する配列項目を有する$all_tags
における各配列項目にキー/値'class' => 'added'
を追加する必要があります。その下に、このサンプルデータで
はadded
の値class
という名前のキーを有するであろう1,2、及び5のid
値と$all_tags
配列内のアイテムを意味します。
...
foreach ($all_tags as &$v) {
if (in_array($v, $list_tags)) {
$v['class'] = 'added';
}
}
print_r($all_tags);
出力:in_array
機能を定期的にforeach
ループを使用するのに十分だろうあなたの単純なケースで
$all_tags = array();
$all_tags[] = array(
'id' => 1,
'title' => 'title 1',
'description' => 'description 1'
);
$all_tags[] = array(
'id' => 2,
'title' => 'title 2',
'description' => 'description 2'
);
$all_tags[] = array(
'id' => 3,
'title' => 'title 3',
'description' => 'description 3'
);
$all_tags[] = array(
'id' => 4,
'title' => 'title 4',
'description' => 'description 4'
);
$all_tags[] = array(
'id' => 5,
'title' => 'title 5',
'description' => 'description 5'
);
$list_tags = array();
$list_tags[] = array(
'id' => 1,
'title' => 'title 1',
'description' => 'description 1'
);
$list_tags[] = array(
'id' => 2,
'title' => 'title 2',
'description' => 'description 2'
);
$list_tags[] = array(
'id' => 5,
'title' => 'title 5',
'description' => 'description 5'
);
foreach($all_tags as $key => $val){
echo $val;
}
'$ all_tags'と' $ list_tags'は順序づけられていますか?つまり、両方とも常に「id」が最も低いアイテムから始まっていますか?この場合、それはむしろ単純です。それ以外の場合は、まず '$ list_tags'から' $ used_ids'のハッシュを作成してから '$ all_tags'の各項目をチェックしてください。 – raina77ow
何を試しましたか? '$ list_tags'配列を検索する必要があります。多次元配列でもあるので、ループが必要です。 http://stackoverflow.com/a/8102246/689579 – Sean
@Sean他の人が答えたことを知る前に、私は以下の回答を投稿しました。どちらも異なる – JasonDavis