2015-05-05 70 views
-1

蔭在PHP寫我的代碼和我的數組看起來像這樣如何通過在陣列中的多個搜索參數在PHP搜索

$arr=Array 
(
[0] => Array 
    (
     [Business_name] => 1847(Jumeirah) 
     [Business_id] => 1422 
     [Business_Locality] => Jumeirah 
     [Locality_id] => 2 
    ) 

[1] => Array 
    (
     [Business_name] => 1847 Mens Salon(Trade Centre) 
     [Business_id] => 42 
     [Business_Locality] => Trade Centre 
     [Locality_id] => 4 
    ) 

[2] => Array 
    (
     [Business_name] => 1847 Mens Salon(Mirdif) 
     [Business_id] => 1565 
     [Business_Locality] => Mirdif 
     [Locality_id] => 28 
    ) 

[3] => Array 
    (
     [Business_name] => 1847 Mens Salon(City Walk) 
     [Business_id] => 494 
     [Business_Locality] => City Walk 
     [Locality_id] => 77 
    ) 

[4] => Array 
    (
     [Business_name] => 1847 Mens Salon(Dubai Marina) 
     [Business_id] => 44 
     [Business_Locality] => Dubai Marina 
     [Locality_id] => 3 
    )) 

現在,如果我要得到誰擁有Locality_id = 2的數據,但如果我想要搜索locality_id = 2和locality_id = 3的數據。因此,當結果集返回時,它應該只有locality_id = 2和locality_id = 3的數據。 我該怎麼做。

這是我寫到目前爲止

function search($array, $key, $value) 
{ 
$results = array(); 

if (is_array($array)) { 
    if (isset($array[$key]) && $array[$key] == $value) { 
     $results[] = $array; 
    } 

    foreach ($array as $subarray) { 
     $results = array_merge($results, search($subarray, $key, $value)); 
    } 
} 

return $results; 
    } 



    print_r(search($arr, 'Locality_id', '2')); 
+1

我不明白你需要 –

+0

所以,這不是免費的編碼服務。看到你試圖做到的代碼和努力。 – Jayson

+0

到目前爲止你已經嘗試過。顯示你的努力獲得更好的結果 –

回答

0

這將幫助您獲得您的結果

$check = array(2,3); 
$result_array = array(); 
$i = 0; 
foreach ($arr as $itemKey => $itemValue) { 

     if (in_array($itemValue['Locality_id'],$check)) { 
      $result_array[$i]['Business_name'] = $itemValue['Business_name']; 
      $result_array[$i]['Business_id'] = $itemValue['Business_id']; 
      $result_array[$i]['Business_Locality'] = $itemValue['Business_Locality']; 
      $result_array[$i]['Locality_id'] = $itemValue['Locality_id']; 
     }else{ 
      continue; 
     } 
     $i++; 
} 
print_r($result_array); 

輸出:

Array ([0] => Array ([Business_name] => 1847(Jumeirah) [Business_id] => 1422 [Business_Locality] => Jumeirah [Locality_id] => 2) [1] => Array ([Business_name] => 1847 Mens Salon(Dubai Marina) [Business_id] => 44 [Business_Locality] => Dubai Marina [Locality_id] => 3)) 
0

聞起來像家庭作業的代碼。但是無所謂。如果我理解正確的問題,這應該這樣做:

$lookingFor = array(2,3); 

foreach($thisArray as $key => $value) { 
    foreach($lookingFor as $looking) { 
     if(in_array($looking, $value['Locality_id'])) { 
      $output[] = $value; 
      continue; 
     } 
    } 
} 

print_r($output); 

我還不測試,我的開發是下個大氣壓,但它應該工作,或至少是正確的方向。你應該可以自己調整代碼。

+1

你說:*如果我正確地理解你的問題,*。那麼,爲什麼你不在問題中首先發表評論?我建議,你可以低估 –

+0

簡單的理由,我想我明白了。另外,我並不真正關心降薪。我不在這裏獲得很多聲譽。我在這裏分享我的知識並幫助解決問題。此外,你有時候毫無理由地陷入低谷,因此其他人可以將自己的答案推到最高。 –

+0

你說:*另外,你有時候毫無理由地被低估,所以其他人可以把他們自己的答案推到最上面*。我真的很討厭這種人,這種行爲是瘋了。 –