gpt4 book ai didi

php - 基于列宽数组 PHP 构建网格行

转载 作者:行者123 更新时间:2023-12-03 18:45:27 25 4
gpt4 key购买 nike

我有一个列宽数组 + 内容,我需要根据它们处理和构建行。

$content = array(
'100',
'80',
'25',
'25',
'25',
'25',
'50',
'50',
'-1',
'33.333333333333',
'33.333333333333',
'33.333333333333',
'50',
'50',
'100',
'16.666666666667',
'-1'
);

-1 表示这不是列,而是文本或短代码,不应包含在行中。

从上面的数组中需要处理的数组应该是

$content = array(
'[row]100[/row]',
'[row]80[/row]',
'[row]25',
'25',
'25',
'25[/row]',
'[row]50',
'50[/row]',
'-1',
'[row]33.333333333333',
'33.333333333333',
'33.333333333333[/row]',
'[row]50',
'50[/row]',
'[row]100[/row]',
'[row]16.666666666667[/row]',
'-1'
);

我尝试了一个起始累加器 0 的循环,我从循环中添加了宽度,但只是有问题。

感谢任何帮助。

最佳答案

映射你的数组。

$start = [
'100',
'80',
'25',
// ...removed for brevity
];

function process(array $data) {
$output = array_map(function ($row, $index) use ($data) {
if ($row == '-1') {
return '-1';
}

$value = $row;

$previousIndex = $index - 1;
$nextIndex = $index + 1;

// Check previous row
if (
// There's a row and it's different
(isset($data[$previousIndex]) && $data[$previousIndex] != $row)
||
// There's no row, we're on the beggining of the list
!isset($data[$previousIndex])
) {
$value = '[row]' . $value;
}

// Check next row
if (
// There is a next row and it's different
(isset($data[$nextIndex]) && $data[$nextIndex] != $row)
||
// There's no next row, we're on the end of the list
!isset($data[$nextIndex])
) {
$value = $value . '[/row]';
}

return $value;
}, $data, array_keys($data));

return $output;
}

关于php - 基于列宽数组 PHP 构建网格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43126779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com