我试图弄清楚如何分解/分区数据库中的值数组,并将各个列表转换为用逗号分隔的值字符串。
如果我不将列表与查询分区,我可以使用它以我想要的格式显示整个列表。
<?php
$get_values = mysqli_query($con, "SELECT * FROM table");
$value_list = array();
while ($row = mysqli_fetch_array($get_values))
{
$value_list[] = $row['value'];
}
foreach( $value_list as $key => $value )
print_r($value . ", ");
//Outputs all values with comma as a list.
//value0, value1, value2, ... value25
?>
在这段代码中,我无法弄清楚如何让列表“$values”正确输出,除非我在 foreach 循环中定义 $values[0] 或 $values[1] 等,但这显然只给了我一个列表。 如果我只在 foreach 循环中使用 $values ,则会出现数组到字符串错误。数据是动态的,除了将列表分为 4 部分和 8 部分的代码中显示的 2 部分之外,我还使用更多代码来定义和分区列表大小,以获取更多结果。
<?php
$get_values = mysqli_query($con, "SELECT * FROM table");
$value_list = array();
$counter = 0;
while ($row = mysqli_fetch_array($get_values))
{
$counter++;
$value_list[] = $row['value'];
}
//Partition into 4 or 8 lists depending on amount of values returned
if($counter >=0 && $counter <=100 )
{
$values = partition($value_list, 4);
}
if($counter >=100 && $counter <=200 )
{
$values = partition($value_list, 8);
}
foreach( $values[0] as $key => $value )
print_r($value . ", ");
function partition(Array $list, $p) {
$listlen = count($list);
$partlen = floor($listlen / $p);
$partrem = $listlen % $p;
$partition = array();
$mark = 0;
for($px = 0; $px < $p; $px ++) {
$incr = ($px < $partrem) ? $partlen + 1 : $partlen;
$partition[$px] = array_slice($list, $mark, $incr);
$mark += $incr;
}
return $partition;
}
?>
我可以做些什么来从所有列表中获取我想要的输出,以便我可以使用这些列表或稍后小批量处理它们?
我想要的是主分区列表中的各个列表以与第一个脚本中的整个列表相同的格式输出。
示例:
list0:
value0, value1, value2, ... value25
list1:
value0, value1, value2, ... value25
list2:
value0, value1, value2, ... value25
list3:
value0, value1, value2, ... value25
list4:
value0, value1, value2, ... value25
list5:
value0, value1, value2, ... value25
list6:
value0, value1, value2, ... value25
list7:
value0, value1, value2, ... value25
下面是使用分区函数后数组输出的示例,其中包含大约 200 个结果。
Array
(
[0] => Array
(
[0] => value0
[1] => value1
[2] => value2
...
...
...
[25] => value25
)
[1] => Array
(
[0] => value0
[1] => value1
[2] => value2
...
...
...
[25] => value25
)
[2] => Array
(
[0] => value0
[1] => value1
[2] => value2
...
...
...
[25] => value25
)
...
...
...
...
[7] => Array
(
[0] => value0
[1] => value1
[2] => value2
...
...
...
[25] => value25
)
)
最佳答案
最后的转储显示您正在获取数组的数组。这应该可以让您轻松地循环遍历它们,以 25 个为一组(在本例中为 25 个)输出它们:
foreach ( $values as $i => $a ) {
echo "List $i: " . join( ', ', $a );
}
关于php - 将数组拆分为多个部分并输出带有值列表的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45082238/