今天我會有一個相當簡單的問題。我們有以下資源:如何檢查一個數組是否包含PHP中的另一個數組?
$a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);
它是如何真能找出是否陣「一」中有一個數組元素和返回鍵,如果有一個(或多個)?
今天我會有一個相當簡單的問題。我們有以下資源:如何檢查一個數組是否包含PHP中的另一個數組?
$a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);
它是如何真能找出是否陣「一」中有一個數組元素和返回鍵,如果有一個(或多個)?
一個可行的方法:
function look_for_array(array $test_var) {
foreach ($test_var as $key => $el) {
if (is_array($el)) {
return $key;
}
}
return null;
}
這是相當瑣碎,這個功能轉化爲收集所有這些鍵:
function look_for_all_arrays(array $test_var) {
$keys = [];
foreach ($test_var as $key => $el) {
if (is_array($el)) {
$keys[] = $key;
}
}
return $keys;
}
Demo。
是的,我已經嘗試過,但是這樣,我將收到'警告:爲foreach提供的無效參數()',因爲它的數組格式不正確。我知道我可以用'@'忽略它,但是還有其他方法嗎? –
請注意,函數參數中的'array'類型提示。如果你不確定'$ test_var'是否是一個數組,你應該檢查它(使用'is_array') - 但這可能意味着代碼中有其他錯誤。 – raina77ow
謝謝我在我的代碼中發現了這個問題。問題在於我輸入的數組中的某些元素實際上是錯誤的。謝謝你的回答,我必須非常累,我已經多次檢查過,沒有看到錯誤。 –
可以使用的foreach,因爲你正在尋找任何陣列:
foreach ($a as $key => $test) {
if (is_array($test)) {
$keys[] = $key;
}
}
陣列的所有按鍵的排列$a
是數組$keys
英寸
$array = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);
foreach($array as $key => $value){
if(is_Array($value)){
echo $value[key($value)];
}
}
我嘗試過不同的方法。
$a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);
foreach ($a as $aas ):
if(is_array($aas)){
foreach ($aas as $key => $value):
echo " (child array is this $key : $value)";
endforeach;
}else{
echo " Value of array a = $aas : ";
}
endforeach;
輸出是這樣的:
Value of array a = 5 : Value of array a = 3 :
Value of array a = 13 : (child array is this 0 :
test) Value of array a = 32 : Value of array a = 33 :
你或許可以使用['in_array()'](http://www.php.net/in_array) –
是'和array_diff()'的你正在尋找的功能? –
我可能會通過它循環,並用is_array測試 - 捕獲密鑰,並在完成時返回密鑰 – wribit