在這裏,我有一個問題:從PHP數組顯示array_key?
我有兩個數組類似如下:
$array1 = array('1','2','1','3','1');
$array2 = array('1','2','3'); // Unique $array1 values
與數組2的值,我需要一個數組1的所有密鑰
預期成果是:
1 => 0,2,4
2 => 1
3 => 3
這裏它秈稻TES array2 value
=>array1 keys
在這裏,我有一個問題:從PHP數組顯示array_key?
我有兩個數組類似如下:
$array1 = array('1','2','1','3','1');
$array2 = array('1','2','3'); // Unique $array1 values
與數組2的值,我需要一個數組1的所有密鑰
預期成果是:
1 => 0,2,4
2 => 1
3 => 3
這裏它秈稻TES array2 value
=>array1 keys
只需使用一個循環:
$result = array();
foreach ($array1 as $index => $value) {
$result[$value][] = $index;
}
偉大的兄弟我只需要這個............ – 2013-05-07 13:34:03
如果傳遞array_keys
第2個參數,它會給你所有與該值的鍵。
所以,只需循環$array2
並從$array1
獲得密鑰。
$result = array();
foreach($array2 as $val){
$result[$val] = array_keys($array1, $val);
}
以下代碼將完成這項工作。它將創建一個結果數組,其中val屬性將包含在數組中搜索的值,而keys屬性將是一個包含找到的鍵的數組。基於以下你的價值觀是一個例子:
$array1 =array('1','2','1','3','1');
$array2 =array('1','2','3');
$results = array();
foreach ($array2 as $key2=>$val2) {
$result = array();
foreach ($array1 as $key1=>$val1) {
if ($val2 == $val1) {
array_push($result,$key1);
}
}
array_push($results,array("val"=>$val2,keys=>$result));
}
echo json_encode($results);
結果將是:
[{"val":"1","keys":[0,2,4]},
{"val":"2","keys":[1]},
{"val":"3","keys":[3]}]
我試圖與array_search(1,$陣列1)它顯示只有一個匹配的鑰匙..... ........ – 2013-05-07 13:26:26