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;