如何检查数组是否包含PHP中的另一个数组?

时间:2014-02-19 22:39:44

标签: php arrays

今天我会有一个相当简单的问题。我们有以下资源:

$a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);

实际上如何确定数组“a”中是否有数组元素,如果有一个(或更多)则返回键?

4 个答案:

答案 0 :(得分:4)

一种可能的方法:

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

答案 1 :(得分:0)

您可以使用foreach,因为您正在寻找任何数组:

foreach ($a as $key => $test) {
    if (is_array($test)) {
        $keys[] = $key;
    }
}

数组$a的所有数组键都位于数组$keys中。

答案 2 :(得分:0)

 $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)];
   }
 }

答案 3 :(得分:0)

我尝试过不同的方式。

$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 :