Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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将数组转换为字符串_Php_Arrays - Fatal编程技术网

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