Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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_Sorting - Fatal编程技术网

Php 检查数组元素是否存在

Php 检查数组元素是否存在,php,arrays,sorting,Php,Arrays,Sorting,我一直在寻找解决方案,但找不到解决问题的好方法。 我想检查现有数组是否有指定的元素,如果没有,则执行一些操作(添加元素) 我有很多层次的关联数据数组 如何检查元素 $categories[][] 是否存在于给定数组中并包含指定数据 到目前为止,我已经: $categories = array(); foreach ($data as $category) { if (!in_array($category["Parent Category Name"], $cat

我一直在寻找解决方案,但找不到解决问题的好方法。 我想检查现有数组是否有指定的元素,如果没有,则执行一些操作(添加元素)

我有很多层次的关联数据数组

如何检查元素

$categories[][]
是否存在于给定数组中并包含指定数据

到目前为止,我已经:

    $categories = array();

    foreach ($data as $category) {
      if (!in_array($category["Parent Category Name"], $categories)) {
        $categories[] = $category["Parent Category Name"];
      }
    }
到目前为止,这是按计划进行的

我需要检查一下

$categories[][]
已插入值。我试过:

    $categories = array();

    foreach ($data as $category) {
      if (!in_array($category["Parent Category Name"], $categories)) {
        $categories[] = $category["Parent Category Name"];
      }

      if (!in_array($category["Parent Category Name"], $categories) && !in_array($category["Child Category1"], $categories) ) {
        if ($category["Parent Category Name"] && $category["Child Category1"]) {
          $categories[] = $category["Parent Category Name"];
          $categories[][] = $category["Child Category1"];
        }
      }
    }
我不工作,第二个if语句并没有按照我的要求过滤数据。不会将任何内容推入新阵列

谁能给我提个建议或给我指个方向吗


非常感谢。

您可以执行以下操作

$categories = [];
foreach ($data as $category) {

       if ( !isset( $categories[$category["Parent Category Name"]] ) ) {

         $categories[$category["Parent Category Name"]] = [$category["Child Category1"]];

       }else {

         if ( !in_array($category["Child Category1"],$categories[$category["Parent Category Name"]]) ) {

              array_push($categories[$category["Parent Category Name"]],$category["Child Category1"]);

         }
     }

}

那应该行。

谢谢,维克多。我尝试一下,让你知道我的进展如何。非常感谢:)