【问题标题】:multidimentional array to if else statement in PHPPHP中if else语句的多维数组
【发布时间】:2016-10-18 17:26:43
【问题描述】:

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

这里我遇到了一些 PHP 问题。我如何从 ulli 标签创建/打印 (if else) 语句。

我有一个这样的多维数组:

$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');
);

然后从上面的数组中,我需要一些代码来回显/打印这样的语句(IN STRING FORMAT TO SAVE IN A VARIABLE):

$str ='if (1.1) {
    if (1.1.1) {

    } else {

    }
} else {
    if (1.2.1) {
        if (1.2.1.1) {

        }
        else {

        }
    } else {

    }
}';

感谢您的帮助... :)

【问题讨论】:

  • 等我发布数组
  • @IvanBarayev 我已经更新了数据源...请帮忙:)
  • 手动@IvanBarayev,因为仍在试验中..
  • @IvanBarayev 迫不及待地要打勾
  • @IvanBarayev 只是对乐于助人的奖励

标签: php jquery html arrays if-statement


【解决方案1】:

你必须用这样的变量来创建条件:

if ($val == "1.1") {
  //do the child if
}

PHP 不会执行这个:

if (1.1) {
}

【讨论】:

  • 你好,请再次检查我已经更新了数据源..请帮助:)
【解决方案2】:

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

$new_arr = array();
foreach($arr as $a){
    $new_arr[$a['parent']][] = $a;
}

之后,您可以使用递归函数访问 new_array..

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 "";
    }
}

所以,像这样调用 rec_child 函数..

echo "<ul>";
rec_child($new_arr[0]);
echo "</ul>";

希望对您有所帮助。

【讨论】:

  • 我想你错过了我的意思
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
相关资源
最近更新 更多