Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中检查数组是否包含其他数组?_Php_Arrays - Fatal编程技术网

如何在PHP中检查数组是否包含其他数组?

如何在PHP中检查数组是否包含其他数组?,php,arrays,Php,Arrays,今天我想问一个相当简单的问题。我们有以下资源: $a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33); 实际上,如何确定数组“a”中是否有数组元素,并在有一个(或多个)元素时返回键?一种可能的方法: function look_for_array(array $test_var) { foreach ($test_var as $key => $el) {

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

$a = array(1 => 5, 2 => 3, 3 => 13, 9 => array('test'), 4 => 32, 5 => 33);
实际上,如何确定数组“a”中是否有数组元素,并在有一个(或多个)元素时返回键?

一种可能的方法:

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;
}
.

一种可能的方法:

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;
}

.

我试过不同的方法

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

我试过不同的方法

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

您可能可以使用的是
array\u diff()
您正在寻找的函数?我可能会循环使用它并使用Is\u array进行测试-捕获密钥,并在完成后返回密钥您可能可以使用的是
array\u diff()
您正在寻找的函数?我可能会循环使用它,并使用is_数组进行测试-捕获密钥,然后在您使用时返回密钥,我也尝试了相同的方法,但这样,我将收到
警告:为foreach()提供的参数无效。
,因为它的数组格式错误。我知道我可以用
@
忽略它,但是还有其他方法吗?请注意函数参数中的
array
typehint。如果您不确定
$test\u var
是否是数组,您也应该检查它(使用
is\u array
)-但这可能意味着您的代码中有其他错误。谢谢,我在代码中发现了问题。问题是我在数组中输入了错误的元素。谢谢你的回答,我一定很累了,我已经多次检查了它,没有看到错误。是的,我也尝试了同样的方法,但是这样,我将收到
警告:为foreach()提供的参数无效
,因为它的数组格式不对。我知道我可以用
@
忽略它,但是还有其他方法吗?请注意函数参数中的
array
typehint。如果您不确定
$test\u var
是否是数组,您也应该检查它(使用
is\u array
)-但这可能意味着您的代码中有其他错误。谢谢,我在代码中发现了问题。问题是我在数组中输入了错误的元素。谢谢你的回答,我一定很累了,我已经检查了很多次,没有发现错误。