PHP将数组转换为字符串
这是我的阵列:PHP将数组转换为字符串,php,arrays,Php,Arrays,这是我的阵列: $info = array( "setA" => array ( "start" => 0, "end" => 0 ), "setB" => array ( "start" => 100, "end" => 300 ), "setC" => array ( "start" => 0, "end" => 0 ), "setD" => array ( "start" => 500, "
$info = array(
"setA" => array ( "start" => 0, "end" => 0 ),
"setB" => array ( "start" => 100, "end" => 300 ),
"setC" => array ( "start" => 0, "end" => 0 ),
"setD" => array ( "start" => 500, "end" => 1000 ),
"setE" => array ( "start" => 0, "end" => 0 ),
"setF" => array ( "start" => 0, "end" => 0 ),
"setG" => array ( "start" => 0, "end" => 0 )
);
如何将其转换为echo命令生成:
setA 0 - 0
setB 100 - 300
setC 0 - 0
setD 500 - 1000
setE 0 - 0
setF 0 - 0
setG 0 - 0
我尝试过各种方法,包括下面的方法,但都没有成功
array_walk_recursive($info, function($v) use (&$result) {
$result[] = $v;
});
echo implode('<br>', $result);
array\u walk\u recursive($info,function($v)use(&$result){
$result[]=$v;
});
回波内爆(“
”,$result);
有什么想法吗?谢谢只要一个
foreach
循环就可以:
foreach ($info as $set => $range) {
echo $set . ' ' . $range['start'] . ' - ' . $range['end'] . '<br />';
}
foreach($info as$set=>$range){
回显$set.''.$range['start'].-'.$range['end'.].
;
}
这是代码
foreach($info as $key => $value){
echo $key." ". $value['start']." - ".$value['end'];
}
它是一个简单的foreach循环,可以遍历数组。foreach更易于使用
$info = array(
"setA" => array ( "start" => 0, "end" => 0 ),
"setB" => array ( "start" => 100, "end" => 300 ),
"setC" => array ( "start" => 0, "end" => 0 ),
"setD" => array ( "start" => 500, "end" => 1000 ),
"setE" => array ( "start" => 0, "end" => 0 ),
"setF" => array ( "start" => 0, "end" => 0 ),
"setG" => array ( "start" => 0, "end" => 0 )
);
foreach ($info as $key => $value) {
echo $key.' '.$value['start'].' - '.$value['end'].'</br>';
}
这很简单,使用
foreach
。此控制结构精确地用于在数组上迭代:
foreach ($info as $key => $val) {
echo $key, ' ', $val['start'], ' - ', $val['end'], '<br>';
}
foreach($info as$key=>$val){
回显$key、$val['start']、'-'、$val['end']、'
';
}
只需在阵列中循环:
$result = "";
foreach($info as $key => $content){
$result .= $key . " ";
foreach($content as $bounce => $value){
$result .= $value . "-";
}
$result = substr($result, 0, strlen($result) - 1) . "<br />\n;
}
echo $result;
$result=”“;
foreach($info as$key=>$content){
$result.=$key.“;
foreach($bounce=>$value的内容){
$result.=$value.“-”;
}
$result=substr($result,0,strlen($result)-1)。“
\n;
}
回声$结果;
我个人认为它可以完成这项工作。我会用foreach迭代数组,但你的array\u walk示例(使用array\u walk而不是array\u walk\u recursive)几乎就完成了
foreach
太花哨了…?在之前的“不,我当然知道foreach,但我的实际场景更复杂”。@Progrock答案是显而易见的(只要你知道PHP最基本的控制结构)还有许多问题几乎是重复的,例如or。虽然我不是说应该对其进行否决,但我认为否决也没有错。如果您是Php和数组新手,请参阅手册(array和book.array)没有明确说明foreach是迭代数组结构的事实上常见的Php方法。恕我直言,但是如果您没有遇到foreach
,但是您需要学习Php的一些介绍,不要问这些。这与。正确!但是在发布答案之前,我会知道,我会我从未发布过。与其他三个答案完全相同。如果你看一下时间,它也是一样的,更新答案:)你有一个奇怪的html破坏元素。我在你的输出中没有看到
。@domsson我们需要一个foreach来获得这个问题的答案。@domsson你确实错了,答案在我写作时出现了6次这是,而不是4。当人们被允许同时在同一页上书写时,就会发生这种情况。;)编辑:通过查看其他答案,你似乎不反对重复评论。噢,拜托@ksjohn对多个回显参数使用逗号,而不是串接字符串。完全不同nt!
是连接运算符,,
是参数分隔运算符。echo
可以接受多个参数。您可以将所有片段连接在一个字符串中,将它们作为一个不同的参数传递,或者将它们作为一个不同的参数传递,因为在两种方式相同的情况下,最显著的区别是valent是连接比多个参数更贪婪,我倾向于不连接。想一想?你尝试过吗?不。如果你尝试过,你会偶然发现语法错误。加上一个最愚蠢的答案。没有尝试…但是,除了语法错误,算法是正确的…是的,第二个循环后的行是不正确的感谢一些原因我没有想到要用foreach,我想我把这个复杂化了。
<?php
$info = array(
"setA" => array ( "start" => 0, "end" => 0 ),
"setB" => array ( "start" => 100, "end" => 300 ),
"setC" => array ( "start" => 0, "end" => 0 ),
"setD" => array ( "start" => 500, "end" => 1000 ),
"setE" => array ( "start" => 0, "end" => 0 ),
"setF" => array ( "start" => 0, "end" => 0 ),
"setG" => array ( "start" => 0, "end" => 0 )
);
foreach($info as $key => $value) {
printf("%s %d - %d\n", $key, $value['start'], $value['end']);
}
setA 0 - 0
setB 100 - 300
setC 0 - 0
setD 500 - 1000
setE 0 - 0
setF 0 - 0
setG 0 - 0
$result = "";
foreach($info as $key => $content){
$result .= $key . " ";
foreach($content as $bounce => $value){
$result .= $value . "-";
}
$result = substr($result, 0, strlen($result) - 1) . "<br />\n;
}
echo $result;
<?php
$result = [];
array_walk($info, function($v, $k) use (&$result) {
$result[] = $k . ' ' . $v['start'] . ' - ' . $v['end'];
});
echo implode('<br>', $result);
setA 0 - 0<br>setB 100 - 300<br>setC 0 - 0<br>setD 500 - 1000<br>setE 0 - 0<br>setF 0 - 0<br>setG 0 - 0
<?php
array_walk($info, function($v, $k) {
echo $k . ' ' . $v['start'] . ' - ' . $v['end'] . "\n";
});
foreach($info as $k => $v) {
echo $k . ' ' . $v['start'] . ' - ' . $v['end'] . "\n";
}