【问题标题】:echo array values together based on same keys基于相同的键一起回显数组值
【发布时间】:2018-01-22 08:17:57
【问题描述】:

下面是一个数组,我需要从中输出每个键,我想将所有值一起回显

数组([26] => 数组([0] => 1 [1] => 2 [2] => 4)[28] => 数组([0] => 1))

foreach ($_POST as $key => $value) {
    foreach ($value as $array) {
        echo $key.'-'.$array.'<br>';
    }
}

使用上述代码输出:
26-1
26-2
26-4
28-1

但我想要的输出是对于每个键,我想回显所有值。

我想要的输出:
26-124
28-1

【问题讨论】:

    标签: php arrays foreach key


    【解决方案1】:

    PHP 提供了一个将数组元素连接在一起的基本函数,名为implode()

    foreach ($_POST as $key => $value) {
        echo $key . ' - ' . implode('', $value) . '<br>';
    }
    

    第一个参数是一个胶水,它指定元素之间的字符串。当前是空字符串'',因此$value = [1, 2, 4] 将打印为:124。如果您提供逗号字符串作为胶水 (','),您将得到 1,2,4 等等...

    【讨论】:

    • 附加说明:如果您不希望它们被任何字符 implode($value) 粘合,您可以省略第一个参数@
    【解决方案2】:

    是的,您可以使用其他用户提到的implode,但如果您想使用 foreach 循环,那么您的代码应如下所示:

    foreach ($_POST as $key => $value) {
        echo $key .'-';
        foreach ($value as $array) {
            echo $array;
        }
        echo '<br>';
    }
    

    【讨论】:

      【解决方案3】:

      只需使用implode() 函数将子数组的值组合起来再输出即可。

      foreach ($_POST as $key => $value) {
          foreach ($value as $array) {
              echo $key.'-'.implode('', $array).'<br>';
          }
      }
      

      【讨论】:

      • 这是不正确的,不需要另一个子 foreach 因为implode 已经处理好了,至少测试你要发布的代码
      • 是的,这会引发错误。要么在字符串中打印array,要么删除第二个foreach,然后内爆将起作用。虽然这将与@PhilippMaurer 相同。
      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      相关资源
      最近更新 更多