2016-07-21 9 views
-2

ループを使用して配列を反復処理し、これらのメッセージをすべて出力する関数を呼び出したいとします。私は何とか何人かの人が何かを把握しなければなりません。 - イム使用してPHPPHPでforループを使用するのを手伝ってください

<?php 
$name_array = array('pon', 'zi', 'pol', 'et'); 

function name_person($name, $number) { 
    echo $name . ' is person #' . $number . ' '; 
} 

for ($i = 0; $i <= 4; $i++) { 
    $counter = 1; 
    while ($counter <=4) { 
     name_person($name_array[$i], $counter); 
     $counter++; 
    } 
} 

私の出力は次のようになります。

pon is person #1, zi is person #2, pol is person #3, et is person #4 

は、あなたが私を助けてくださいことはできますか?

+1

を?? –

+0

あなたはwhileループを必要としません –

答えて

0

はこれを試してみてください。

このコードを試してください。

$name_array = array('pon', 'zi', 'pol', 'et'); 

//remove 0 index from array (optional) 
$name_array = array_filter(array_merge(array(0), $name_array)); 

function name_person($name, $number) { 
    echo $name . ' is person #' . $number . ' '; 
} 
//apply a user supplied function to every member of an array 
array_walk($name_array, 'name_person'); 

出力:正確な出力のための

pon is person #1 zi is person #2 pol is person #3 et is person #4 
+0

あなたのループをチェックします..itsは5回だけ実行します。 –

+0

私はそれに応じてループを編集しました。 –

+0

ありがとうございます:) –

0
  1. forループ内のネストされたwhileループがあります。

  2. forループは、<=4の代わりに0から<4まで実行する必要があります。

  3. $counter変数を忘れて、代わりに$i+1を使用してください。

だから、する必要があります:あなたは、配列の全ての要素にユーザが指定した関数を適用するarray_walkを使用することができます

<?php 
$name_array = array('pon', 'zi', 'pol', 'et'); 

function name_person($name, $number) { 
    echo $name . ' is person #' . $number . ' '; 
} 

for ($i = 0; $i < 4; $i++) { 
    name_person($name_array[$i], $i + 1); 
} 
1

for ($i = 0; $i < 4; $i++) { 
    name_person($name_array[$i], $i+1); 
} 
0

この試してください:あなたが今何を得る

$name_array = array('pon', 'zi', 'pol', 'et'); 

function name_person($name, $number) { 
    echo $name . ' is person #' . $number; 
} 

foreach($name_array as $k=>$v) { 
    name_person($v, $k+1).(($k==sizeof($name_array)-1)?'':', '); 
} 
関連する問題