2012-01-31 130 views
1

我想編輯一個插件,它是獲取一個多維數組,然後將其分解爲一個foreach語句並對結果數據進行處理。獲取一個多維數組

我想要做的是編輯數組,然後它到達foreach語句。我想查看是否存在鍵/值組合,如果它確實刪除了整個子數組,然後重新構造數組並將其傳遞給一個新變量。

當前變量

$arrayslides 

返回多個子陣,看起來像這樣的事情(我刪除爲了簡潔起見不重要變量):

Array ( 
    [0] => Array ( 
    [slide_active] => 1 
) 
    [1] => Array ( 
    [slide_active] => 0 
) 
) 

我想要做的就是外觀和看看這些子數組中的一個是否包含值爲0的關鍵slide_active。如果它包含零值,我想要將整個子陣列完全轉儲,然後將多維數組重新轉換回變量

$arrayslides 

我已經嘗試了幾個數組函數,但沒有任何運氣。有什麼建議麼?

+6

聽起來像array_filter()用一個簡單的回調測試slide_active – 2012-01-31 11:44:35

+0

表面證據@標記添加它作爲答案。 – kapa 2012-01-31 11:46:48

+0

難道你不能改變提取數據的SQL查詢嗎?會更清潔。 – kapa 2012-01-31 11:47:31

回答

3
$arrayslides = array(0 => array ( 'slide_active' => 1, 'other_data' => "Mark"), 
        1 => array ( 'slide_active' => 0, 'other_data' => "ABCDE" ), 
        2 => array ( 'slide_active' => 1, 'other_data' => "Baker" ), 
        3 => array ( 'slide_active' => 0, 'other_data' => "FGHIJ" ), 
        ); 


$matches = array_filter($arrayslides, function($item) { return $item['slide_active'] == 1; }); 

var_dump($matches); 

PHP> = 5.3.0

+0

感謝Mark..it進展良好 – Arun 2012-01-31 13:02:37

0

我知道它不是那麼有效,但仍

foreach ($arraySlides as $key => $value) 
{ 
    if(in_array('0', array_values($value)) 
     unset($arraySlides[$key]); 
} 
+0

謝謝Uday,儘管它效率不高,仍然是它的一個選擇。 – Arun 2012-01-31 13:04:33