データベースから値の配列を分解/分割し、個々のリストをカンマで区切った値の文字列に変換する方法を理解しようとしています。配列を複数の部分に分割し、値のリストを含む出力文字列
私はクエリからリストを分割しない場合、私はこれを使用したいフォーマットで表示するためにリスト全体を得ることができます。このコードで
<?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
?>
私は$の値を定義しない限り、私は正しく出力に「$値」のリストを取得する方法を見つけ出すカント[0]や$値[1]など、foreachループではなく、明らかにのみ与えられること私は1つのリスト。 foreachループで$値だけを使用すると、配列に文字列エラーが発生します。データは動的で、リストを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のグループで出力します: '' foreach($ values as $ i => $ a){echo "List $ i:"。 join( '、'、$ a); } ''。これはあなたが望むものではありませんか? – kmoser
それはまさに私が望んでいたように見えます。ありがとう、私はそれを感謝します。 – John
回答として投稿したい場合は、私はそれを受け入れます。 – John