php - 将数组拆分为多个部分并输出带有值列表的字符串

标签 php mysql arrays list

我试图弄清楚如何分解/分区数据库中的值数组,并将各个列表转换为用逗号分隔的值字符串。

如果我不将列表与查询分区,我可以使用它以我想要的格式显示整个列表。

<?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/

相关文章:

PHP - 从 URL 获取字符串

php - 设置 Cookie 时禁用 WP Super Cache

mysql - 计算该行过去一小时内具有时间戳的行数

JavaScript,Node.js : is Array. forEach 异步?

c - 使用数组中的数据初始化结构

php - 如何在javascript中读取json?

php - 为什么 PHP strtolower 的性能变化如此之大?

javascript - 单击按钮时自动更新表格

mysql - Phalcon 按相关型号列排序

arrays - Angular 6 - 从可观察的数据中获取数据我做错了什么?