2017-03-12 2 views
-2

私はフォルダのファイルで構成される配列を持っています。私は、次のスニペットを使用すると
配列の各値をPHPの新しい変数に入れます

foreach($myarray as $key => $value) 
{ 
echo $value. "<br>"; 
} 

を私は次の出力を持っている:

vendor/templates/File1.docx 
vendor/templates/File2.docx 
vendor/templates/File3.docx 

私の質問は:それは新しい変数で私の配列の各値を入れて作る方法?自分のフォルダに100個のファイルがあると自動的にファイルを作成する方法は? 実は私は(私の配列が唯一の3つの項目で構成されている場合)を持っているしたいと思います:

$a = 'vendor/templates/File1.docx' 
$b = 'vendor/templates/File2.docx' 
$c = 'vendor/templates/File3.docx' 

を私はループを使用する必要がありますねしかし、多くのテストの後、私はまだ立ち往生しています。..
てきましたあなたはどんなアイデアですか?

ありがとうございます!ここで

+1

あなたはそれをしたいと思うのはなぜ?すでに変数に格納されています。 '$ myarray'です。 – jeroen

+0

私は新しい変数に私の配列の各項目を(配列全体ではなく)保存したいと思います。異なる変数に対応する各項目 – Julien

+0

問題は、新しい変数の名前をつけてアクセスすることです。既存の配列を使うことができるように、ループを使用する必要があります。これを行う必要がある背後にあるあなたの考えは何ですか? –

答えて

0

は、ソリューションです:

<?php 

$myarray = ['vendor/templates/File1.docx', 'vendor/templates/File2.docx', 'vendor/templates/File3.docx']; 

foreach($myarray as $key => $value) 
{ 
    $varname = "var".$key; 
    $$varname = $value; 
} 

echo $var0."\n"; 
echo $var1."\n"; 
echo $var2."\n"; 

- >

vendor/templates/File1.docx 
vendor/templates/File2.docx 
vendor/templates/File3.docx 
+1

['extract'](http://php.net/extract)はどうですか? – hassan

+1

こんにちは@ハッサン。ドキュメントでは、 "この関数はキーを変数名と値として扱い、変数値として扱います"と述べているため、動作しないと思います。変数名はPHPで数値で始めることはできません。配列が '['one' => 'value'、 'two' => 'value']'ならば、それは完璧な解決策になります – Gab

+0

これは私が必要とするものです!助けてくれて本当にありがとう! – Julien

0

は、機能があなたの問題のために動作します、次のことができます。

extract($array); 

http://php.net/extract

+0

実際には、プレフィックスパラメータと正しいフラグを使用する必要があることを除いて、実際に移動する方法です。 –

関連する問題