2017-10-02 5 views
2

私は私の人生のために得ることができないこの練習に立ち往生しています。各ループに対して、20より大きい別の配列

$numbers2 = [21, 5, 4, 6, 76, 2, 18, 85, 55, 1]; 

foreach ($numbers2 as &$value) { 
    $largeNumbers[] = $value > 20; 
} 

これまでのコードはこれです。私がここでやろうとしているのはfor-eachループを使って20より大きいすべての数値を別の配列に追加することです。これは$ largeNumbersという名前です。私が上に挿入したコードは真と偽の値を表示しているようですが、これは私が行っていたものではありません。誰かが私が間違ってやっていることを教えてくれたり、より良い方法を教えてくれて本当に感謝しています。 for-eachループを使用する必要があります。

+1

'代わりに、あなただけの状態に答えるの要素を取るためにif statement'を使用することができます$ largeNumbers = array_filter($ numbers2、function($)値){戻り$値> 20; }); ' –

+0

ここをクリックhttp://php.net/manual/en/language.operators.assignment.php – svgrafov

答えて

4

各項目について、20より大きいかどうかをチェックしています(結果がブール値であるかどうか)。この値を結果配列に格納します。

​​
0
<?php 
$nums = [21, 5, 4, 6, 76, 2, 18, 85, 55, 1]; 

foreach([$nums] as $v) 
    $out = array_filter($v, function($v) { 
     return $v > 20; 
    }); 

var_export($out); 

出力:

array (0 => 21, 4 => 76, 7 => 85, 8 => 55,) 
+0

あなたは' foreach() '行を失い、' $ v 'を '$ nums 、 ' - https://eval.in/872421 –

+0

@WeeZelはい、彼らはforeachを使用する必要があります。 – Progrock

+0

ああ、それを逃しました:-)コーディングテスト - 誰が必要ですか? –

1
<?php 
$nums = [21, 5, 4, 6, 76, 2, 18, 85, 55, 1]; 

$less_than_or_equal_to_20 = [];  
foreach($nums as $v) 
    if($v <= 20) 
     $less_than_or_equal_to_20[] = $v; 

$out = array_diff($nums, $less_than_or_equal_to_20); 
var_export($out); 

出力:

array (0 => 21, 4 => 76, 7 => 85, 8 => 55,) 
関連する問題