簡體   English   中英

如何折疊(或清理)給定的數組,如何過濾PHP中的某些結果以進行進一步的SQL搜索

[英]How to collapse (or clean) a given array, filtering some results in PHP for a further SQL search

在這里我很猶豫,但是今天我對數組所面臨的問題不知所措。

在開始之前,我想指出我不是程序員也不是工程師(我來自設計分支並且是自學成才的)。

但是今天我已經被困了幾個小時,我不知道該如何擺脫困境。 我知道這有點尷尬,但是我更喜歡“像我五歲那樣解釋”這種風格的答案。

我還是MVC架構(以及OOP)的新手,盡管我沒有趕上100%的進度,但是我在構建站點方面一直進展緩慢但穩定。

因此,當搜索表單從視圖發送到控制器時,控制器將以這種方式構造的數組發送回模型:

Array
(
    [kind_ID] => 0
    [type_ID] => 1
    [city_ID] => 0
    [address] => foo
    [number] => 
    [price] =>

    // ... and so on (more fields with blank, zero or some data)

問題是,我不知道如何重建或清理數組以丟棄所有留為空白或為零(或為null的元素)的元素; 維護所有非零值以及所有相同的索引 ,因為使用db-> like()函數時需要使用索引來進行進一步的正確查詢。

我已經仔細閱讀了所有PHP文檔,但是還沒有找到任何函數可以搜索數組中的“某物”並將其取消設置。 我已經嘗試了幾種數組函數,但是找不到能滿足我需要的函數。

要點:

// I'd like to convert this array:

Array
{
    [kind_ID] => 0
    [type_ID] => 1
    [city_ID] => 0
    [address] => foo
    [number] => 
    [price] => 25000
    ...

 // To this one

Array
{
    [type_ID] => 1
    [address] => foo
    [price] => 25000
    ...

我希望我已經足夠清楚了,當然,請告訴我是否需要采用其他方法。

我一直在玩:

array_keys()
unset()

但是,我也不知道如何循環到數組的末尾,或者如何基於該循環來構建循環。

感謝您的寶貴時間,如果您想給我任何提示,請豎起大拇指。 任何幫助都感激不盡!

干杯,

我認為您正在尋找這樣的東西:

foreach($arr as $k => $v){
    if( empty($v) || !isset($v) || $v == false ){
        unset($arr[$k]);
    }
}

因此,$ k是鍵,例如:“ Age”,而$ v是值,例如:24

這是在檢查該數組鍵的值,以查看它是否為空(空字符串),未完全設置或為false(為false,零等),然后將其取消設置。 您甚至可能甚至不需要!isset部分,但我還是把它丟到了那里,但是如果未設置它,則無法取消設置它,只是為了完成才知道它的存在。

您使用unset()處在正確的軌道上,您只需要輕按...就好了:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM