2017-05-10 11 views
0

私はPHPで配列を使っています。私の質問は、forループの外でPHP配列の値にアクセスする方法です。PHPのループの外側の配列値にアクセスする方法

ここにコードがあります。

<?php 
$a = array("1","2"); 
for($i=0;$i<count($a);$i++){ 
#some core functionality DB related. 
$val = $row['values']; 
$b = explode(',',$val); 
} 
print_r($b); 

$fin = array_combine($a,$b); 
print_r($fin); 
?> 

私は両方の配列を結合したいが、配列bが得られない。 forループの外側の配列値にアクセスするには?

予想される出力:

Array ([0] => 7 [1] => 6) // b array 
Array ([1] => 7 [2] => 6) // fin array 
+1

$ bが最後の値をデータベースからフェッチしているので、配列のループを組み合わせる必要があります。そのため、ループの値を組み合わせることをお勧めします –

+0

その配列$ aが2回ループしています。それは働かない。 – Vikky

+0

は$ row ['values']コード内に複数の値を持つかどうか –

答えて

0

で議論した内容を上記にこのコードを探している私は、元のプロセスを見つめ続ける、それが不必要に複雑なようです。これは、あなたが望む何をしていません。

$a=["1","2"]; 
foreach($a as $k=>$v){ 
    // I don't know if you are using $k or $v in your DB actions 
    // On 1st iteration, $k=0 & $v="1"; on 2nd: $k=1 & $v="2" 
    $fin[$v]=explode(',',$row['values']); 
} 
var_export($fin); 

これが間違っている場合、私はそれが間違っているか知っているので、私はより良い質問を理解することができますしてください。

+0

ありがとうございました@それは働いた。 – Vikky

+0

@Vikky素晴らしいこれが私のプロジェクトであれば、 '$ a'の各値を呼び出すのではなく、データベースを1回呼び出すだけで済むように、プロセスを最適化する方法を検討したいと思います。 ...私はあなたにその可能性について考えさせるつもりです。 – mickmackusa

+0

はい絶対に@mickです。簡単な理解のために私は$ a配列を言及しているが、実際にはこれをdbから取得して配列に変換する。 ご協力いただきありがとうございます – Vikky

1

は、元の配列にすべての結果を追加してみます。 このようなものです。

<?php 
$a = array("1","2"); 

for($i=0;$i<count($a);$i++){ 
#some core functionality DB related. 
$val = $row['values']; 
$temp_array = explode(',',$val); 
    for($j=0;$j<sizeof($temp_array);$j++){ 
     array_push($a,$temp_array[$j]); 
    } 
} 
print_r($a); 

?> 
+0

に連結する必要があるので、直接explode値を代入する代わりにarray_pushを使用して$ bにすべての値を保存します。 array_push($ b、explode( '、'、$ val));以下の値を追加するコード。 $ b = explode( '、'、$ val)の代わりに。 –

+0

私は配列@nandanの最後の値を取得しています。 私はあなたのアプローチを空白のページを取得しようとしています。Aoxi – Vikky

+0

@nandan imテーブルの値を取得するIMとしてのみDBのforループを使用しています。私はその値を$ a配列にキー=>値のペアとして代入しようとしています – Vikky

0

私は間違っていないよ場合は、私はあなた

<?php 
$a = array("1","2"); 
$b = array(); 
for($i=0;$i<count($a);$i++){ 
#some core functionality DB related. 
$b[] = $row['values']; 
} 
print_r($b); 

$fin = array_combine($a,$b); 
print_r($fin); 

?> 
+0

はい、しかし、唯一のことは$ b = array();を宣言しなければならないことです。 forループが配列にアクセスする前に。残りは同じ ありがとう@amit – Vikky

+0

@Vikky私は変更しました –

関連する問題