2
我有兩個陣列$array1
和$array2
,我得到動態和模樣比較兩個多維數組的值,然後插入如果不退出
$array1 = Array
(
[0] => Array
(
[hour] => 10
[activity] => Array
(
[0] => Array
(
[activity_id] => 1
[cnt] => 2
)
[1] => Array
(
[activity_id] => 2
[cnt] => 1
)
)
)
[1] => Array
(
[hour] => 11
[activity] => Array
(
)
)
[2] => Array
(
[hour] => 12
[percentage] => 0
[activity] => Array
(
[0] => Array
(
[activity_id] => 2
[cnt] => 5
)
[1] => Array
(
[activity_id] => 3
[cnt] => 2
)
)
)
);
$array2 = Array
(
[0] => Array
(
[id] => 1
[name] => Phone Calls
[readable] => 1
[status] => active
)
[1] => Array
(
[id] => 2
[name] => Meeting With Customer
[readable] => 1
[status] => active
)
[2] => Array
(
[id] => 3
[name] => Others Works
[readable] => 1
[status] => active
)
);
,我需要比較。
如果$array2['id']
不在$array1["activity"]
(即「activity_id」)將數組['activity_id'=>$array2['id'],'cnt'=>0]
添加到$array1['activity']
。
我的結果必須像
$result = Array
(
[0] => Array
(
[hour] => 10
[activity] => Array
(
[0] => Array
(
[activity_id] => 1
[cnt] => 2
)
[1] => Array
(
[activity_id] => 2
[cnt] => 1
)
[2] => Array
(
[activity_id] => 3
[cnt] => 0
)
)
)
[1] => Array
(
[hour] => 11
[activity] => Array
(
[0] => Array
(
[activity_id] => 1
[cnt] => 0
)
[1] => Array
(
[activity_id] => 2
[cnt] => 0
)
[2] => Array
(
[activity_id] => 3
[cnt] => 0
)
)
)
[2] => Array
(
[hour] => 12
[percentage] => 0
[activity] => Array
(
[0] => Array
(
[activity_id] => 1
[cnt] => 0
)
[1] => Array
(
[activity_id] => 2
[cnt] => 5
)
[2] => Array
(
[activity_id] => 3
[cnt] => 2
)
)
)
);
我曾嘗試是
$finalArray = array();
foreach($array1 as $arr1) {
foreach($array2 as $arr2) {
if(!in_array($arr2['id'], $arr1['activity'])) {
$array = ['activity_id'=>$arr2['id'], 'cnt'=>0];
}
array_push($arr1['activity'], $array);
unset($array);
}
array_push($finalArray, $result);
}
print_r($finalArray);
in_array()
功能無法正常工作,因爲我除外或者我試圖做到這一點在錯誤的道路。有人可以幫助我嗎?
如果我理解正確的代碼,你想知道什麼是如果第一個陣列(而非價值)存在索引。在這種情況下,你需要的是:http://php.net/manual/fr/function.array-key-exists.php。讓我們知道我是否正確。 –
感謝您的關注。您可以在$ result數組中看到$ result [0] [activity]添加了[2] =>數組 ( [activity_id] => 3 [cnt] => 0 )你會看到我的工作數組和$結果數組可能是你很容易理解的。$ result array是我需要的輸出。 –
我的意思是:你的目標是匹配你的'$ arr1 ['activity']'數組中的一個鍵還是一個值? –