Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的数组Php Foreach_Php_Arrays_Foreach_Explode - Fatal编程技术网

数组中的数组Php Foreach

数组中的数组Php Foreach,php,arrays,foreach,explode,Php,Arrays,Foreach,Explode,我有数组中的数组foreach 我没有在foreach中添加html代码。举个例子。我已经工作了两个小时了。请帮帮我 我的数组爆炸代码 string = "Deri Renk|kırmızı-siyah-beyaz-sarı-lacivert,kadife Renk|kırmızı-sarı"; $delimiters = Array(",",":","|","-"); $res = multiexplode($delimiters,$string); foreach ($res as $v

我有数组中的数组foreach

我没有在foreach中添加html代码。举个例子。我已经工作了两个小时了。请帮帮我

我的数组爆炸代码

string = "Deri Renk|kırmızı-siyah-beyaz-sarı-lacivert,kadife Renk|kırmızı-sarı";
$delimiters = Array(",",":","|","-");

$res = multiexplode($delimiters,$string);

foreach ($res as $val) {
echo $val;
};
我的数组输出

Array
(
[0] => Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [0] => HEAD
                    )

                [1] => Array
                    (
                        [0] => item1
                        [1] => item2
                        [2] => item3
                        [3] => item4
                        [4] => item5
                    )

            )

    )

[1] => Array
    (
        [0] => Array
            (
                [0] => Array
                    (
                        [0] => HEAD 2
                    )

                [1] => Array
                    (
                        [0] => item1
                        [1] => item2
                    )
            )
    )
);
我想打印如下。这是一个简单的操作,但我做不到,因为php只是一点信息

<div>
<h1>HEAD</h1>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>

<div>
<h1>HEAD</h1>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>

我也没有包括html,但添加了注释,给你一个放置它的指南

您需要循环阵列的所有级别。
您的循环只循环第一个级别,没有值,只有无法回声的数组

foreach ($res as $sub) {
    foreach($sub[0] as $key => $item){
        // If key is 0 it's the head, else it's the items
        if($key == 0){
            echo "  "; // this is HEAD
        }
        foreach($item as $val){
            echo $val . "\n"; // this is ITEMS
        }
    }
};

请在此处查看它的工作情况:

如果您的阵列一致:

$html = '';
foreach ($array as $value) {
  $html .= '<div>';
  $head = $value[0][0][0];
  $html .= '<h1>'.$head.'</h1>';
  $html .= '<ul>';
  foreach ($value[0][1] as $item) {
    $html .= '<li>'.$item.'</li>';
  }
  $html .= '</ul>';
  $html .= '</div>';
}
$html='';
foreach($array作为$value){
$html.='';
$head=$value[0][0][0];
$html.=''.$head';
$html.='
    '; foreach($value[0][1]作为$item){ $html.='
  • '.$item.
  • '; } $html.='
'; $html.=''; }
我选择重写它,这样使用起来更简单。这涉及到不需要使用
multiexplode()
函数,而是专门针对所涉及的字符串格式执行此操作

因此,首先按
进行分解,然后将其拆分为标题和内容

$input = "Deri Renk|kırmızı-siyah-beyaz-sarı-lacivert,kadife Renk|kırmızı-sarı";
$list = explode(",", $input);
$list1 = [];
foreach( $list as $item )   {
    list($key,$data) = explode("|", $item);
    $list1[$key] = explode("-", $data);
}

foreach ( $list1 as $heading=>$out )  {
    echo "<div><h1>$heading</h1><ul>";
    echo "<li>".implode("</li><li>",$out)."</li>";
    echo "</ul></div>";
}
$input=“Deri Renk|kırmızı-siyah beyaz sarı-lacivert,kadife Renk|kırmızı-sarı”;
$list=分解(“,”,$input);
$list1=[];
foreach($项目列表){
列表($key,$data)=分解(“|”,$item);
$list1[$key]=分解(“-”,$data);
}
foreach($list1作为$heading=>$out){
回声“$heading
    ”; echo“
  • ”。内爆(
  • ,$out)。“”; 回声“
”; }
输出是

<div>
    <h1>Deri Renk</h1>
    <ul>
        <li>kırmızı</li>
        <li>siyah</li>
        <li>beyaz</li>
        <li>sarı</li>
        <li>lacivert</li>
    </ul>
</div>
<div>
    <h1>kadife Renk</h1>
    <ul>
        <li>kırmızı</li>
        <li>sarı</li>
    </ul>
</div>

德里伦克
  • kırmızı
  • 西耶
  • 贝亚兹
  • 萨尔ı
  • 拉西弗特
卡迪夫·伦克
  • kırmızı
  • 萨尔ı
尝试以下代码

$string = "HEAD|item1-item2-item3-item4-item5,HEAD 2|item1-item2";
$delimiters = array(",",":","|","-");
$res = multiexplode($delimiters,$string);

// Preparing HTML
$html = '';
foreach ($res as $val) {
    $header = $val[0][0][0];
    $items = $val[0][1];
    $html .= '<div><h1>'.$header.'</h1><ul>';
    foreach ($items as $item) {
        $html .= '<li>'.$item.'</li>';
    }    
    $html .= '</ul></div>';    
};
echo $html;
$string=“HEAD | item1-item2-item3-item4-item5,HEAD 2 | item1-item2”;
$delimiters=数组(“,”,“:”,“|”,“-”;
$res=multiexplode($delimiters,$string);
//准备HTML
$html='';
foreach($res作为$val){
$header=$val[0][0][0];
$items=$val[0][1];
$html.=''.$header.'
    '; foreach($items作为$item){ $html.='
  • '.$item.
  • '; } $html.='
'; }; echo$html;
因此,为每个人制作一个
函数,有什么问题吗?多重分解不是标准函数。请在代码中包含函数。我正在foreach中写入数组值。结果为空。数组输出有点混乱,因为它与输入无关。好的。。在注释中不包括有问题的多重分解。我喜欢新的数组结构+1代码中有一个小问题。每个标题必须在一个单独的分区中。谢谢你,伙计。@CelalYeşil我不明白这个问题,它按你说的做,看这里;我在
标签中错过了一个关闭的
,这可能会使它有点过时。我无法接受编辑,它不包括头部回声。因此,这会使我的代码无法按预期工作
$string = "HEAD|item1-item2-item3-item4-item5,HEAD 2|item1-item2";
$delimiters = array(",",":","|","-");
$res = multiexplode($delimiters,$string);

// Preparing HTML
$html = '';
foreach ($res as $val) {
    $header = $val[0][0][0];
    $items = $val[0][1];
    $html .= '<div><h1>'.$header.'</h1><ul>';
    foreach ($items as $item) {
        $html .= '<li>'.$item.'</li>';
    }    
    $html .= '</ul></div>';    
};
echo $html;