PHP中if else语句的多维数组

PHP中if else语句的多维数组,php,jquery,html,arrays,if-statement,Php,Jquery,Html,Arrays,If Statement,你好,首先对不起我的英语不好 这里我有一些PHP的问题。如何从ul和li标签创建/打印(如果其他)声明 我有一个多维数组,如下所示: $arr = array( array('id' => 1, 'parent' => 0, 'data' => '1.1'); array('id' => 2, 'parent' => 0, 'data' => '1.2'); array('id' => 3, 'parent' => 1, '

你好,首先对不起我的英语不好

这里我有一些PHP的问题。如何从ul和li标签创建/打印(如果其他)声明

我有一个多维数组,如下所示:

$arr = array(
    array('id' => 1, 'parent' => 0, 'data' => '1.1');
    array('id' => 2, 'parent' => 0, 'data' => '1.2');
    array('id' => 3, 'parent' => 1, 'data' => '1.1.1');
    array('id' => 4, 'parent' => 1, 'data' => '1.1.2');
    array('id' => 5, 'parent' => 2, 'data' => '1.2.1');
    array('id' => 6, 'parent' => 2, 'data' => '1.2.2');
    array('id' => 7, 'parent' => 5, 'data' => '1.2.1.1');
    array('id' => 8, 'parent' => 5, 'data' => '1.2.1.2');
);
if ($val == "1.1") {
  //do the child if
}
然后从上面的数组中,我需要一些代码,这些代码应该像这样回显/打印语句(以字符串格式保存在变量中):


感谢您的帮助……:)

您必须使用如下变量创建条件:

$arr = array(
    array('id' => 1, 'parent' => 0, 'data' => '1.1');
    array('id' => 2, 'parent' => 0, 'data' => '1.2');
    array('id' => 3, 'parent' => 1, 'data' => '1.1.1');
    array('id' => 4, 'parent' => 1, 'data' => '1.1.2');
    array('id' => 5, 'parent' => 2, 'data' => '1.2.1');
    array('id' => 6, 'parent' => 2, 'data' => '1.2.2');
    array('id' => 7, 'parent' => 5, 'data' => '1.2.1.1');
    array('id' => 8, 'parent' => 5, 'data' => '1.2.1.2');
);
if ($val == "1.1") {
  //do the child if
}
PHP不会执行以下操作:

if (1.1) {
}

第一步,创建新数组,该数组包含具有来自父id的键的子节点

$new_arr = array();
foreach($arr as $a){
    $new_arr[$a['parent']][] = $a;
}
之后,您可以使用递归函数访问新的_数组

function rec_child($arr){
    global $new_arr;
    foreach($arr as $a){
        echo "<li>".$a['data']."</li>";
        if(!empty($new_arr[$a['id']])){         
            echo "<ul>";
            rec_child($new_arr[$a['id']]);
            echo "</ul>";
        }
        echo "";
    }
}
function rec_child($arr){
全球$new_arr;
foreach($arr作为$a){
回声“
  • ”$a[“数据”]。“
  • ”; 如果(!empty($new_arr[$a['id']]){ 回声“
      ”; rec_child($new_arr[$a['id']]); 回声“
    ”; } 回声“; } }
  • 所以,像这样调用rec_子函数

    echo "<ul>";
    rec_child($new_arr[0]);
    echo "</ul>";
    
    echo“
      ”; rec_child($new_arr[0]); 回声“
    ”;

    希望这有帮助。

    等等,我会发布array@IvanBarayev我已经更新了数据源。。。请帮助:)@IvanBarayev手动操作,因为仍在进行试验。@IvanBarayev迫不及待地要进行检查sign@IvanBarayev只是对帮助人员的奖励你好,请再次检查我已经更新了数据源。。请帮忙:)我想你没有领会我的意思