2017-07-13 6 views
0

データベースから値の配列を分解/分割し、個々のリストをカンマで区切った値の文字列に変換する方法を理解しようとしています。配列を複数の部分に分割し、値のリストを含む出力文字列

私はクエリからリストを分割しない場合、私はこれを使用したいフォーマットで表示するためにリスト全体を得ることができます。このコードで

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

     ) 

) 
+0

この質問はあまり明確ではありません。最後のダンプは配列の配列を取得していることを示しました。これは、あなたのループを簡単にループして、(この場合は)25のグループで出力します: '' foreach($ values as $ i => $ a){echo "List $ i:"。 join( '、'、$ a); } ''。これはあなたが望むものではありませんか? – kmoser

+0

それはまさに私が望んでいたように見えます。ありがとう、私はそれを感謝します。 – John

+0

回答として投稿したい場合は、私はそれを受け入れます。 – John

答えて

0

最後のダンプは、配列の配列を取得していることを示しました。これにより、ループを簡単にループして(この場合は)グループとして出力できます。25:

関連する問題