在没有循环的情况下在PHP中使用嵌套索引打印数组的所有值

时间:2019-07-23 23:33:49

标签: php arrays multidimensional-array

我有一个包含嵌套String的数组,我想在不循环的情况下输出它。

这是数组:

$field_my_array[0]['string_term']->name = "First";
$field_my_array[1]['string_term']->name = "Second";
$field_my_array[2]['string_term']->name = "Third";
$field_my_array[3]['string_term']->name = "Forth";
$field_my_array[4]['string_term']->name = "Fifth";

我想将其输出为

  

第一,第二,第三,第四,第五

这是我尝试过的(但它在循环中)

   for ($ctr = 0; $ctr < count($field_my_array); $ctr ++) {
        print $field_my_array[$ctr]['string_term']->name;
        if ($ctr < count($field_my_array) -1) {print ", ";} 
      }

3 个答案:

答案 0 :(得分:2)

我倾向于将其分为两部分:

  1. 将数组转换为仅包含要连接的值的简化版本。为此,您可以使用array_map()https://www.php.net/manual/en/function.array-map.php)。
  2. 加入数组的元素,最后不加逗号。 implode()https://www.php.net/manual/en/function.implode.php)的完美用例。

示例:

echo implode(', ', array_map(function($item) {
    return $item['string_term']->name;
}, $field_my_array));

答案 1 :(得分:1)

我不确定您要达到的目标。如果您不想循环播放,则必须手动编写:

echo $field_my_array[0]['string_term']->name;
echo ", ";
echo $field_my_array[1]['string_term']->name;
...

,依此类推。循环是一种基本的编程结构,它使我们能够通过简单的计数实现自动化。

for ($ctr = 0; $ctr < count($field_my_array); $ctr ++) {
        print $field_my_array[$ctr]['string_term']->name;
        if ($ctr < count($field_my_array) -1) {print ", ";} 
      }

一个更好的选择是:

$field_my_array[0]['string_term']->name = "First";
$field_my_array[1]['string_term']->name = "Second";
$field_my_array[2]['string_term']->name = "Third";
$field_my_array[3]['string_term']->name = "Forth";
$field_my_array[4]['string_term']->name = "Fifth";

$names = array();

    for ($ctr = 0; $ctr < count($field_my_array); $ctr ++) {
                $names[] = $field_my_array[$ctr]['string_term']->name; 
              }
     // this creates a string with a comma between items from array         
     $full_text = implode(', ',$names);

     echo $full_text ;

答案 2 :(得分:0)

您可以将array_merge_recursiveimplode一起使用

$c = array_merge_recursive(...$field_my_array);
echo implode(',', $c['string_term']['name']);

实时演示https://3v4l.org/GdhM5