我有一个包含嵌套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 ", ";}
}
答案 0 :(得分:2)
我倾向于将其分为两部分:
array_map()
(https://www.php.net/manual/en/function.array-map.php)。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_recursive
与implode
一起使用
$c = array_merge_recursive(...$field_my_array);
echo implode(',', $c['string_term']['name']);