私の目標は2つの異なる配列をマージすることです。PHP array_merge空の値は常に優先順位が低く
テーブル「a」&「b」があります。 テーブル "a"からのデータがより優先順位が高くなります。
問題点:: "a"のキーに空の値が含まれている場合は、テーブル "b"のキーを使用したいと思います。
<?php
$a = array('key1'=> "key1 from prioritar", 'my_problem'=> "");
$b = array('key1'=> "key1 from LESS prioritar", 'key2'=>"key2 from LESS prioritar", 'my_problem'=> "I REACHED MY GOAL!");
$merge = array_merge($b, $a);
var_dump($merge);
以下のような何かをしないで1つの関数にこれを行う方法があります:ここで
は私のコードですか?あなたがarray_replace
と
array_filter
$mergedArray = array_replace($b, array_filter($a));
を使用することができます
foreach($b as $key => $value)
{
if(!array_key_exists($key, $a) || empty($a[$key])) {
$a[$key] = $value;
}
}
あなたの配列 '$ b'は2つの' key2'インデックスを持っていますか? – roullie
'!array_key_exists ||空 'はナンセンスです。どちらかを使うと、 'false'との比較に興味があるかどうかによって、うまくいくでしょう。両方を一緒に使用することは、単に「空」を使用することと同じです。 – deceze
@roullie、ありがとう、これはtypo – Bast