0

配列を取得し、foreach ループでループし、各配列値をクラスを介して送信して、データベースからデータを取得したいと考えています。これは私が現在使用しているコードです:

foreach ($unique_category as $key => $value) 
{
    $category = $value;
    $value = new database;
    $value->SetMysqli($mysqli);
    $value->SetCategory($category);
    $value->query_category();
    ${"$value_category"} = $value->multi_dim_array();
    print_r(${"$value_category"});
    echo "<br /><br />";            
}
print_r($unique_category[0]."_category");

$unique_category[0]."_category"変数をにしたい${"$value_category"}。現在、${"$value_category"}foreach ループでは正しい値/配列が出力されます$unique_category[0]."_category"が、person_category (その配列の最初の値は person) だけが出力されます。

$unique_category[0]."_category"print を と同じようにするにはどうすればよい${"$value_category"}ですか?

ありがとうございました

編集:

foreach ループは、このような多次元配列を作成しています。Array ( [0] => Array ( [0] => Home [1] => 9.8 ) [1] => Array ( [0] => Penny [1] => 8.2 ))この配列を foreach ループの外側で出力できるようにしたいと考えています。各 md 配列には独自の変数名が付けられているため、いつでもどこでも出力できます。

4

1 に答える 1

0

オブジェクトなしでのテスト

<?php

    $unique_category_list = array('foo', 'bar', 'baz');
    foreach ($unique_category_list as $key => $value) 
    {
        $category = $value;
        $value_category = $value."_".$category; 
        $unique_category = $unique_category_list[$key]."_category";
        $unique_category = ${"$value_category"} = $key; 

        print_r($unique_category_list[$key]."_category");
        echo "\n\n";
    }

?>

出力:

foo_category

bar_category

baz_category

オブジェクトと

<?php 

    // note that $unique_category is now $unique_category_list && $value is now $category
    foreach ($unique_category_list as $key => $category) 
    {
        $database = new Database();
        $database->setMysqli($mysqli);
        $database->setCategory($category);
        $database->query_category();

        // http://www.php.net/manual/en/language.oop5.magic.php#object.tostring
        // this will invoke the `__toString()` of your $database object... 
        // ... unless you meant like this
        // $value_category = $category."_".$category;
        $value_category = $database."_".$category;
        $unique_category = $unique_category_list[$key]."_category";

        // http://stackoverflow.com/questions/2201335/dynamically-create-php-object-based-on-string
        // http://stackoverflow.com/questions/11422661/php-parser-braces-around-variables
        // http://php.net/manual/en/language.expressions.php
        // // http://php.net/manual/en/language.variables.variable.php
        // 'I want the variable $unique_category[0]."_category" to be ${"$value_category"}.'
        $unique_category = ${"$value_category"} = $database->multi_dim_array();          
    }

    print_r($unique_category_list[0]."_category");
    echo "<br><br>\n\n";

?>
于 2013-11-04T03:47:08.780 に答える