我正在做一些可能太长而且很难解释的事情,但基本上我已经将一个字符串以复杂的方式映射到数组中,以使它们混乱。这是它的外观示例:
field[26][25]='x';
field[24][23]='z';
field[28][29]='y';
现在我已经按照我想要的方式成功地混乱了字符串,我需要重建线性结果。
所以我需要获取数组的第1行,并遍历此行中的所有元素以将它们组合成一个字符串。然后对第2行执行相同的操作,依此类推,创建一个大型线性字符串。
如何计算这些行中有多少行和元素?对于我的生活,我甚至无法开始找到如何为multid数组执行此操作。
亲切的问候
答案 0 :(得分:0)
@ u_mulder在那里得到了一个坚实的答案。对于元素的数量,您只需说:
$total = 0;
foreach( $matrix as $row ) $total += count($row);
对于元素的连接,你只需说:
$concat = '';
foreach( $matrix as $row ) $concat .= implode('', $row);
鲍勃是你的叔叔。但是真的,这样一个奇怪的mashup是否有一个有效的用例?
答案 1 :(得分:0)
$field[26][25]='x';
$field[24][23]='z';
$field[28][29]='y';
$field_string = '';
array_walk_recursive ( $field , function($item, $key) use (&$field_string){
if(!is_array($item)){
$field_string .= $item;
}
});
echo $field_string;
老实说,这有点令人困惑。我可能需要更多信息,但如果有帮助请告诉我
答案 2 :(得分:0)
您可以从一个空字符串开始,并使用两个嵌套的foreach
来迭代每行上的行和项目,并将每个项目附加到字符串:
$result = '';
foreach ($fields as $row) {
foreach ($row as $item) {
$result .= $item;
}
}
或者您可以使用foreach
替换整个内部$result .= implode('', $row);
。
您甚至可以通过调用array_map()
然后implode()
将foreach
生成的数组调用为字符串来替换外部array_map()
:
$string = implode(
'',
array_map(
function (array $items) {
return implode('', $items);
},
$fields
)
);