簡體   English   中英

獲取所有數組中顯示的所有鍵

[英]Get all the keys presented in all arrays

我有一些數組,例如

$arr[0]=array(k1=>1,k2=>1,k3=>1);
$arr[1]=array(k2=>1,k3=>1,k4=>1);
$arr[2]=array(k3=>1,k4=>1,k5=>1);

因此,我需要獲取所有數組中都存在的所有鍵(動態地,數組的數量可以不同)。 在這種情況下,它是k3鍵。 所以結果應該是array('k3'=>1)

我建議可以通過多個循環來實現,但是可能有一些更簡單的方法。

您需要使用array_intersect_key()函數:

<?php

$arr1 = array('k1' => 1, 'k2' => 1, 'k3' => 1);
$arr2 = array('k2' => 1, 'k3' => 1, 'k4' => 1);
$arr3 = array('k3' => 1, 'k4' => 1, 'k5' => 1);

print_r(
    array_intersect_key($arr1, $arr2, $arr3)
);

輸出:

Array
(
    [k3] => 1
)

要獲取三個數組中的公共元素,可以使用array_intersect()

注意:此函數適用於通用數組值而不是通用數組

嘗試這個:

$key1 = array_flip($arr1);
$key2 = array_flip($arr1);
$key3 = array_flip($arr1);

$intersect = array_flip(array_intersect($key1, $key2, $key3));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM