2011-08-07 3 views
3

配列に配列を入れて、ここでの構造である:PHPは私は1つのアレイ内のいくつかのアイテムをプッシュしたい

$str = 'String'; 
$a = array('some', 'sub', 'page'); 

と私はなるべきいくつかの他の配列にアイテムをプッシュする:

Array (
    [some] => Array (
     [sub] => Array (
     [page] => String 
    ) 
    ) 
) 

どのように正確に説明するのか分かりませんので、その例があなたに何かを示してくれることを願っています。 最初の配列(a)内の新しい要素を先行する配列のサブ配列としてプッシュし、最後の配列を$ strの値にしたい。

$string = 'My Value'; 
$my_first_array = array('my', 'sub', 'arrays'); 

その後、いくつかの機能は$ my_first_arrayを解析して、それを転送する:

例:

ob_start('nl2br'); 
$my_parsed_sub_array = parse_sub_arrays($my_first_array, $string); 
print_r($my_parsed_sub_array); 

=== >>>

Array (
    [my] => Array (
     [sub] => Array (
     [arrays] => String 
    ) 
    ) 
) 

答えて

5

[編集] I今回は、私が質問を理解したことを願って...

あなたはこのようなあなたの文字列と配列を持っている場合:

$str = 'test'; 
$a = array('some', 'sub', 'page'); 

あなたが最初の最後の項目のその特別な場合を扱う、結果の配列をこのように初期化できます。その後

$arr = array($a[count($a)-1] => $str); 

$a配列の各項目を末尾のから順にループすることができます(最後に処理していません)。

質問を理解する前に、以下の

array 
    'some' => 
    array 
     'sub' => 
     array 
      'page' => string 'test' (length=4) 



旧答え:

var_dump($arr); 

はあなたに期待される結果を取得する必要があります:結果の配列をダンプこれにより

for ($i=count($a) - 2 ; $i>=0 ; $i--) { 
    $arr = array($a[$i] => $arr); 
} 

、 :

あなたはこの方法あなたの配列を宣言することができます:

$arr = array(
    'some' => array(
     'sub' => array(
      'page' => $str, 
     ), 
    ), 
); 


あるいは、いくつかの明確な手順を使用して(特に、より複雑なケースでは、あなたのサブアレイを構築する方法に応じて、より簡単であるかもしれません)現在の例より:

$sub2 = array('page' => $str); 
$sub1 = array('sub' => $sub2); 
$arr = array('some' => $sub1); 
+0

いや、いや、あなたはpoint.Iを持っている最初の配列(a)のサブアレイにおよび$からの最後を解析するために、いくつかのアルゴリズムを作りたい得ることはありません値$ str.Iこれを自動にしたい手作業ではなく、コードを介してmaticallyで実行します。これは複雑です。申し訳ありませんが、私はそれをよく言いません。 –

+0

私は最初の記事でそれをより良く説明しようとします。 –

+0

ああ;申し訳ありませんが、質問を理解していませんでした:-( –

関連する問題