0

だから私は私の質問を持っています、今日私のデザイナーがレンチを使っていることを除いて、すべてが膨らんでいると期待するようにその結果が返されます。それは私を私のゲームから少し遠ざけているようです、とにかく、それは私が知っている人を疲れさせる原因かもしれません。

3層アレイを作成します

プライマリカテゴリ、サブカテゴリ(プライマリごとに倍数を持つことができます)、およびサブカテゴリごとのアイテムリスト(1〜100アイテム)。

foreach、while、forループを試しました。$final = array();すべては通常、その下のループから始まります。

次のようなアレイを構築しようとしています:

$final[$row['primary]][$row['sub']][] = $row['item]
$final[$row['primary]][$row['sub']] = $row['item]

使用する独自の配列として、それぞれを定義してみましarray_push()た。そして他の様々な戦術と私はひどく失敗しています。私はここで私を助けるために新鮮な心の人が必要です。どのタイプのループが私のニーズに最も適しているかから、計画に従って構築するためにアレイを構築する方法まで。

望ましい結果は

array(
   primary = array
             (
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
             ),
   primary = array
             (
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
                sub = array
                      (
                        itemA,
                        itemB,
                        itemC
                      ),
             ),
)
4

3 に答える 3

2

このようなもの....

$final = 
array(
    'Primary1'=>array(
        'Sub1'=>array("Item1", "Item2"),
        'Sub2'=>array("Item3", "Item4")
    ),
    'Primary2'=>array(
        'Sub3'=>array("Item5", "Item6"),
        'Sub4'=>array("Item7", "Item8")
    ),
);

を使用してそれを行うことはできますがarray_push、連想配列が本当に必要であり、array_pushがキーでうまく機能しないため、それほど簡単ではありません。あなたは確かにあなたのサブ要素にアイテムを追加するためにそれを使うことができます

array_push($final['Primary1']['Sub1'], "Some New Item");
于 2012-09-09T13:46:26.857 に答える
2

あなたのリクエストの処理中にこのようなもの:

if (!array_key_exists($row['primary'], $final)) {
    $final[$row['primary']] = array();
}
if (!array_key_exists($row['sub'], $final[$row['primary']])) {
    $final[$row['primary']][$row['sub']] = array();
}
$final[$row['primary']][$row['sub']][] = $row['item'];
于 2012-09-09T13:53:17.267 に答える
0

私があなたを正しく理解しているなら、あなたはいくつかのdb関係をPHP配列にフェッチしたいと思うでしょう。

これは、それを解決する方法のサンプルコードです。

<?php

$output = array();

$i = 0;
// DB Query
while($categories) { // $categories is an db result

    $output[$i] = $categories;

    $ii = 0;
    // DB Query
    while($subcategories) { // $subcategories is an db result

        $output[$i]['subcategories'][$ii] = $subcategories;

        $iii = 0;
        // DB Query
        while($items) { // $items is an db result

            $output[$i]['subcategories'][$ii]['items'][$iii] = $items;

            $iii++;
        }
        $ii++;
    }
    $i++;
}

print_r($output);

?>
于 2012-09-09T13:56:07.870 に答える