2017-01-08 13 views
0

私は、特定の期間内にすべての予約を表示するクエリから返される配列を持っています。私はこの配列で最も一般的な治療法を見つけようとしています。治療はアイドル治療としてアレイ内にある。どのようにして、idtreatmentの最も一般的な価値を見つけるために配列を検索することができますか?私は$処理は、以下の配列であるPHPの配列からの最も一般的なidtreatments

  $return = array(); 
     foreach ($treatment as $a) 
     { 
      foreach ($treatment as $b) 
      { 
       if ($a === $b) continue; 
       $return = array_merge($return, array_intersect($a, $b)); 
      } 
     } 

を使用して試してみましたが、他のすべての共通の価値観だけではなく、idtreatmentを見て、唯一のオフゴーイングアカウント

Array 
(
[0] => Array 
    (
     [idbooking] => 30255 
     [idtreatment] => 65 
     [idtreatmentLocation] => 1 
     [iduser] => 632 
     [idstylist] => 65 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 1 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 09:00:00 
     [bookingCreated] => 2017-01-02 18:41:43 
     [bookingETime] => 09:30:00 
     [bookingToken] => GAsW3k8ASEQo7iS1SScIrt7lB9l31ZHHAaDCvKdnp4LvlDwewIXXb5i 
     [bookingComplete] => 1 
     [bookingPrice] => 20 
     [bookingRebooked] => 0 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 20 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Shellac Fingers 

    ) 

[1] => Array 
    (
     [idbooking] => 28849 
     [idtreatment] => 168 
     [idtreatmentLocation] => 
     [iduser] => 214 
     [idstylist] => 73 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 1704 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 09:00:00 
     [bookingCreated] => 2016-11-16 18:44:55 
     [bookingETime] => 09:45:00 
     [bookingToken] => cCdXCwqAR7xa75CBwr3LvSxCWjC2YKHamU8YrxziE7tLa6mHwos3h1F 
     [bookingComplete] => 1 
     [bookingPrice] => 20 
     [bookingRebooked] => 1 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 20 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Shellac Fingers & Remove 

    ) 

[2] => Array 
    (
     [idbooking] => 30253 
     [idtreatment] => 65 
     [idtreatmentLocation] => 
     [iduser] => 334 
     [idstylist] => 65 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 70 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 09:30:00 
     [bookingCreated] => 2016-12-31 14:37:14 
     [bookingETime] => 10:00:00 
     [bookingToken] => 4if86rm0vsxbqIf2V20Xu4XHCKJeZ3U3k0aqBwz7Z8iqPysKzBI5FGM 
     [bookingComplete] => 1 
     [bookingPrice] => 20 
     [bookingRebooked] => 0 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 20 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Shellac Fingers 

    ) 

[3] => Array 
    (
     [idbooking] => 29512 
     [idtreatment] => 63 
     [idtreatmentLocation] => 
     [iduser] => 330 
     [idstylist] => 73 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 65 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 09:45:00 
     [bookingCreated] => 2016-12-07 17:36:04 
     [bookingETime] => 10:00:00 
     [bookingToken] => QMHxMb5PkACXcUWxpDBbIoV8zy6up9ufUcMHoRwIr9FE4CcsfNEXcz6 
     [bookingComplete] => 1 
     [bookingPrice] => 10 
     [bookingRebooked] => 1 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 10 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Eyebrow Thread 

    ) 

[4] => Array 
    (
     [idbooking] => 29513 
     [idtreatment] => 436 
     [idtreatmentLocation] => 
     [iduser] => 330 
     [idstylist] => 73 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 65 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 10:00:00 
     [bookingCreated] => 2016-12-07 17:36:21 
     [bookingETime] => 10:15:00 
     [bookingToken] => JkFvtRL2avOptokPQMTKnEh2129CzTcidSNGJyIU5wjyVEnMrgwPUOR 
     [bookingComplete] => 1 
     [bookingPrice] => 0 
     [bookingRebooked] => 1 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 0 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Face Mapping - 15 Mins 

    ) 

[5] => Array 
    (
     [idbooking] => 29511 
     [idtreatment] => 65 
     [idtreatmentLocation] => 
     [iduser] => 330 
     [idstylist] => 73 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 65 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 10:15:00 
     [bookingCreated] => 2016-12-07 17:35:35 
     [bookingETime] => 10:45:00 
     [bookingToken] => qVLGE2zwPpPXexiZCs8WVQuOlHQRpQGQMswru7XkwMhKkAJX4QTZHoO 
     [bookingComplete] => 1 
     [bookingPrice] => 20 
     [bookingRebooked] => 30380 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 20 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Shellac Fingers 

    ) 

[6] => Array 
    (
     [idbooking] => 28867 
     [idtreatment] => 206 
     [idtreatmentLocation] => 
     [iduser] => 3474 
     [idstylist] => 65 
     [idbranch] => 1 
     [idStatus] => 1 
     [idsystem] => 1 
     [bookingCreatedBy] => 65 
     [bookingDate] => 2017-01-05 
     [bookingSTime] => 10:30:00 
     [bookingCreated] => 2016-11-17 10:28:49 
     [bookingETime] => 10:45:00 
     [bookingToken] => ZVapypjdIrENXPyvi9fTuKvEWKgCE6gE2q4zQmNyOrlLgUgy4wsxhXc 
     [bookingComplete] => 1 
     [bookingPrice] => 17 
     [bookingRebooked] => 1 
     [bookingPatchTest] => 0 
     [bookingPriceAmend] => 0 
     [bookingTreatPrice] => 17 
     [bookingLink] => 0 
     [isLunch] => 0 
     [treatmentName] => Eyebrow Thread 

    ) 
) 
+0

コードが正常に動作しています.http://sandbox.onlinephpfunctions.com/code/e0453f75ba3e1668c986ac7725e39bdf50f74eb8 –

+0

エラーは何ですか? –

+0

@Suchitはい、それは配列の他のすべての値を考慮に入れているようですが、結果セットが正しくないようにしています。 –

答えて

2

にそのを取るが含まれているようですあなたはuとなら

$idTreatments = []; 

foreach ($treatment as $value) { 

    $id = $value['idtreatment']; 

    if (!isset($idTreatments[$id])) { 
     $idTreatments[$id] = 0; 
    } 

    $idTreatments[$id]++; 
} 

arsort($idTreatments); 

$commonTreatment = key($idTreatments); 

:あなたの$treatment配列あなたはのような何かを行うことができidtreatmentの最も一般的な発生する場合はこのことができます

$idTreatments = array_count_values(array_column($treatment, 'idtreatment')); 

希望:あなたはarray_columnarray_count_values代わりforeachループを使用することができ5.5+ PHPを歌います!

+0

完璧にありがとう –

関連する問題