[英]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.