这是我的阵列
Array ( [category_id] => 4 [parent_id] => 3 [name] => Default Category [is_active] => 1 [position] => 4 [level] => 2 [children] => Array ( [0] => Array ( [category_id] => 122 [parent_id] => 4 [name] => Root [is_active] => 1 [position] => 1 [level] => 3 [children] => Array ( [0] => Array ( [category_id] => 123 [parent_id] => 122 [name] => Clothing [is_active] => 1 [position] => 1 [level] => 4 [children] => Array ( [0] => Array ( [category_id] => 124 [parent_id] => 123 [name] => Men Clothing [is_active] => 1 [position] => 1 [level] => 5 [children] => Array ( [0] => Array ( [category_id] => 125 [parent_id] => 124 [name] => Polos & Tees [is_active] => 1 [position] => 1 [level] => 6 [children] => Array ( ) ) ) ) ) ) [1] => Array ( [category_id] => 126 [parent_id] => 122 [name] => Fashion [is_active] => 1 [position] => 2 [level] => 4 [children] => Array ( [0] => Array ( [category_id] => 127 [parent_id] => 126 [name] => Footwear [is_active] => 1 [position] => 1 [level] => 5 [children] => Array ( [0] => Array ( [category_id] => 128 [parent_id] => 127 [name] => Women [is_active] => 1 [position] => 1 [level] => 6 [children] => Array ( [0] => Array ( [category_id] => 129 [parent_id] => 128 [name] => Flats [is_active] => 1 [position] => 1 [level] => 7 [children] => Array ( ) ) ) ) ) ) ) ) ) ) ) )
我想做的是:写一个函数
foo($find,$array){
//do some coding to search in the array
return $category_id;//category id of the coresponding matched name in array
}
例如:foo(服装,$数组);
将返回18foo(男子服装,$数组)
将返回19等等
这是一个具有递归的解决方案:
function foo($find, $array) {
if( $array['name'] == $find ) {
return $array['category_id'];
}
if( empty($array['children']) ) {
return null;
}
foreach($array['children'] as $child) {
$result = foo($find, $child);
if( $result !== null ) {
return $result;
}
}
return null;
}
echo foo('Default Category', $array), "\n"; // 4
echo foo('Root', $array), "\n"; // 122
echo foo('Clothing', $array), "\n"; // 123
echo foo('Men Clothing', $array), "\n"; // 124
echo foo('Polos & Tees', $array), "\n"; // 125
echo foo('Fashion', $array), "\n"; // 126
echo foo('Footwear', $array), "\n"; // 127
echo foo('Women', $array), "\n"; // 128
echo foo('Flats', $array), "\n"; // 129
您可以使用递归
。这里有一个例子。。
function getId($arr, $val){
if(is_array($arr)){
if(isset($arr['name']) && trim($arr['name']) == trim($val)){
return isset($arr['category_id']) ? $arr['category_id'] : 'Not found';
}
foreach($arr as $values){
if(is_array($values)){
return getId($values, $val);
}
}
}
}
$val = getId($arr, 'Polos & Tees');
echo $val; //output 20
问题内容: 我有一个JSON数组 我将如何搜索8097并获取内容? 问题答案: 使用该函数将JSON字符串转换为对象数组,然后遍历该数组直到找到所需的对象:
左右数组是当前索引的左右子级的索引号。如果其中一个为-1,则该子代不存在。如果两者都为-1,则索引处的节点是叶节点。我知道这在现实世界中不太可能实现,但这是一项任务。 不管怎样,我正试图在一个实现这个想法的类中实现一个remove方法。除了一个节点有两个子节点的情况,我让它适用于所有情况。这里的问题是,我调用了一个递归方法(我创建的所有方法都必须是递归的),该方法应该返回包含我要删除的节点的左子树
问题内容: 如何使用preg_match在数组中搜索? 例: 问题答案: 在这篇文章中,我将为您提供三种不同的方法来满足您的要求。 我实际上建议使用最后一个代码段,因为它最容易理解并且代码简洁。 如何查看数组中与我的正则表达式匹配的元素? 有专门用于此目的的功能。它将一个正则表达式作为第一个参数,并将一个数组作为第二个参数。 请参见以下示例: 输出 但是我只想获取指定组的值。怎么样? 与能解决清洁
假设mongodb文档(表)“users”为 我想找到1975年必须获得“国家奖章”的人,可能还有其他人在不同的年份获得该奖项。 我怎样才能找到这个人使用奖励类型和年份。所以我可以得到确切的人。
比如,我有以下实体类: Person.java 以及存储库: PersonRepository。Java语言 是否有一个方法返回所有人,其car数组包含一个给定的car(上面的String参数)? 对我来说,似乎所有支持的JPA关键字都只能处理单个元素,而不能处理数组。 谢谢你的帮助!
本文向大家介绍在Javascript二进制搜索树中搜索值,包括了在Javascript二进制搜索树中搜索值的使用技巧和注意事项,需要的朋友参考一下 我们将使用BST的属性在其中查找元素。首先让我们看一下搜索的迭代实现- 示例 在此功能中,我们从根作为currNode开始,然后将我们的数据与currNode的数据进行比较。如果找到匹配项,则返回true,否则我们将继续根据数据与currNode数据