Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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让我为具有值的concat键而疯狂_Php_Foreach - Fatal编程技术网

php让我为具有值的concat键而疯狂

php让我为具有值的concat键而疯狂,php,foreach,Php,Foreach,这是我的$bob数组: Array ( [n] => Array ( [0] => 1 ) [m] => Array ( [0] => 1 [1] => 2 ) [l] => Array ( [0] => 1 [1] =>

这是我的
$bob
数组:

Array
(
    [n] => Array
        (
            [0] => 1
        )

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

    [l] => Array
        (
            [0] => 1
            [1] => 4
            [2] => 64
        )

    [o] => Array
        (
            [0] => 1
            [1] => 4
        )
      )
我需要输出:

  • n-1
  • m-1,m-2
  • l-1、l-4、l-64
  • o-1,o-4
我试了一些

foreach ($bob as $value) {

    foreach ($value as &res)

    $value =  $bob . "-" . $res;
}
}
我想这很遗憾,但我是个新手。。 欢迎所有帮助, 杰西,你能试试这个吗

foreach ($bob as $key=>$value) { 
     foreach ($value as $res){        
     echo $value =  $key . "-" . $res."<br/>";
    }
}
foreach($bob作为$key=>$value){
foreach(价值为$res){
echo$value=$key.“-”$res.“
”; } }

foreach($bob as$key=>$value)
语法为每个值提供每个键。然后,您可以在$value数组上循环以获取所需的数字。

尝试使用
$res
代替下一行中的
&res

foreach ($value as &res)

您是foreach之后的花括号小姐,并且使用&res->$res打印错误请尝试使用foreach和$key 试试这个


试试这个:
它将为您提供精确的输出和新的行
现场演示:

$arr=数组 ( 'n'=>数组 ( 0 => 1 ),

'm' => array
    (
        0 => 1,
        1 => 2
    ),

 'l' => array
    (
        0 => 1
    ),

'0' => array
    (
        0 => 1,
        1 => 2,
        2 => 64,
        3 => 120,
    )
    );
   $output = '';  
    foreach($arr as $k1 =>$v1){
    $out = ' ';
     foreach($arr[$k1] as $k => $v){
      $out .= $k1.'-'.$v.',';
     }
     $output .= rtrim($out,',').'<br/>';
    }

    echo $output;
'm'=>数组
(
0 => 1,
1 => 2
),
'l'=>数组
(
0 => 1
),
“0”=>数组
(
0 => 1,
1 => 2,
2 => 64,
3 => 120,
)
);
$output='';
foreach($arr为$k1=>$v1){
$out='';
foreach($arr[$k1]为$k=>$v){
$out.=$k1.-“$v.”;
}
$output.=rtrim($out,“,”)。
; } echo$输出;
输出:


n-1
m-1,m-2
l-1
0-1,0-2,0-64,0-120

看看如何使用foreach($bob as$key=>$value)并在嵌套循环迭代期间构建新数组不知道为什么,但它给我一个警告:为foreach()提供的参数无效不知道为什么,但它给我一个警告:为foreach()提供的参数无效@albator如果只打印($bob),会发生什么?你得到的数组和你的问题相同吗?@albator你确定吗?这里的例子是:运行正确。你的例子似乎有效,我需要花时间看看哪里出了问题,谢谢你的帮助!不知道为什么,但它给了我一个警告:为foreach()提供的参数无效。您是否尝试过我的代码?确保
$bob
包含数组值。我已经检查过了,它给出了预期的结果output@albator你能试试这个吗?
<?php

$bob = [
        'n' => [0 => 1],
        'm' => [0 => 1, 1 => 2],
        'l' => [0 => 1, 1 => 4, 2 => 64],
        'o' => [1 => 1, 1 => 4],
];

foreach ($bob as $key => $value) {
        foreach ($value as $res) {
                echo  $key . "-" . $res . PHP_EOL;
        }
}
php test.php
n-1
m-1
m-2
l-1
l-4
l-64
o-4
'm' => array
    (
        0 => 1,
        1 => 2
    ),

 'l' => array
    (
        0 => 1
    ),

'0' => array
    (
        0 => 1,
        1 => 2,
        2 => 64,
        3 => 120,
    )
    );
   $output = '';  
    foreach($arr as $k1 =>$v1){
    $out = ' ';
     foreach($arr[$k1] as $k => $v){
      $out .= $k1.'-'.$v.',';
     }
     $output .= rtrim($out,',').'<br/>';
    }

    echo $output;