2016-09-09 16 views
0

次の配列の要素1は、最大値がxの要素を表し、要素2は最小要素がxの要素を表します。サブ配列の要素値が最大または最小の配列要素を検索する

PHPコードを使用して各配列をループせずに、最大と最小の要素のインデックスをどのようにして決定できますか?x

$array = [ 
    ['x'=>5,'y'=>3], 
    ['x'=>9,'y'=>3], 
    ['x'=>3,'y'=>3], 
    ['x'=>7,'y'=>3] 
]; 
+1

を使用するために必要な

$x = array_column($array, 'x'); $min = array_search(min($x), $x, true); $max = array_search(max($x), $x, true); 

PHP> = 5.5.0どのように行う他に、各要素の上に**:複数の同一の値がある場合は最初のキーを返します。あなたが見つけたよりも大きな価値があるかどうか知っていますか? – Rizier123

+0

@ Rizier123 AbraCadaverのソリューションはどうですか? – user1032531

+2

コード内に表示されていないからといって、 'array_column()'は配列全体をループしないという意味ではありません。そして、あなたは単純なforeachループを使うことができます。そして、あなたは 'array_column()'のように一度だけループします。 – Rizier123

答えて

4

x列を抽出し、それを計算する:

$x = array_column($array, 'x'); 
$min = min($x); 
$max = max($x); 

あるいは、JustOnUnderMillionsアウトポイントとして:

list($min, $max) = [min($x=array_column($array, 'x')), max($x)]; 

その値を含む配列のインデックスを取得するには、単にarray_search()を使用してください。 array_column()またはあなたが**ループに持ってPHP Implementation of array_column()

+1

'list()'を使用して最終的に1ライナーを取得してください;-) – JustOnUnderMillions

+0

パーフェクト!私はいくつかの配列マップのパスを下っていた... – user1032531

+0

Yippie、私は幸せ:たたかれる::たたき::-) – JustOnUnderMillions

関連する問題