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"]);
}
}
}
那应该行。谢谢,维克多。我尝试一下,让你知道我的进展如何。非常感谢:)