如何创建父子关系。例如,我有一个变量,其中数据按类别排序。
我在这里尝试的是如何编写一个可以同时搜索和父函数的函数。
例如 - 如果有人搜索 CATEGORY1 ,他应该撤回所有名称,例如 - john,christoffer hansen,jonatthon orkar mej,fredrik hanvensson 。
但如果有人搜索 jonatthon ,他应该只获得 jonatthon 。
因此所有数据都存储在名为$ store_var的变量中,如果我打印它,我会这样 -
Array
(
[CATEGORY1] => Array
(
[0] => Array
(
[id] => 1002
[name] => john
[category] => CATEGORY1
)
[1] => Array
(
[id] => 1121
[name] => christoffer hansen
[category] => CATEGORY1
)
[2] => Array
(
[id] => 4529
[name] => jonatthon orkar mej
[category] => CATEGORY1
)
[3] => Array
(
[id] => 4309
[name] => fredrik hanvensson
[category] => CATEGORY1
)
)
[CATEGORY2] => Array
(
[0] => Array
(
[id] => 3412
[name] => johanna Ottenfelt
[category] => CATEGORY2
)
[1] => Array
任何建议都会非常明显。谢谢你提前。
答案 0 :(得分:1)
这是问题第一部分的功能。
function search_parent($param, $arr, $att) {
$result = "";
if(array_key_exists($param, $arr)) {
for ($i =0; $i<sizeof($arr[$param]); $i++) {
$result .= $arr[$param][$i][$att]."<br>";
}
}
$domain = 'Results for:'. $param."<br>";
return $domain.$result;
}
// echo search_parent('CATEGORY 1', $my, 'name');
// echo search_parent('CATEGORY 2', $my, 'name');
以下代码也可以,但是当我尝试将它们放入函数中时,
$first_node = array_keys($my);
foreach ($first_node as $fnk => $fnv) {
$second_node = array_keys($my[$fnv]);
foreach ($second_node as $snk => $snv) {
if (in_array("John", ($my[$fnv][$snv]))) { echo "John exists"; exit(); } ;
}
}
像那样,
function search_child($param, $arr) {
$result = "";
$first_node = array_keys($arr);
foreach ($first_node as $fnk => $fnv) {
$second_node = array_keys($arr[$fnv]);
foreach ($second_node as $snk => $snv) {
if (in_array($param, ($arr[$fnv][$snv]))) {
$result = $param. " exists"; }
else {
$result = $param. "does not exist in given array";
}
}
}
return $result;
}
//$p = 'Mile';
//echo search_child($p, $my);
它没有用。可能我错过了一些东西,但我不知道它是什么。尽管取得了所有成功/不成功的结果,但这不是一个好的解决方案,而只是“节省一天的时间”。