0

私はここで質問するのをためらっていますが、今日、私が直面しているアレイの問題に圧倒されています。

何よりもまず、私はプログラマーでもエンジニアでもないことに注意したいと思います (私は設計部門出身で独学です)。

しかし、今日、私は何時間も立ち往生しており、ループから抜け出す方法がわかりません. ちょっと恥ずかしいのはわかっていますが、「私が5歳のように説明してください」というスタイルの回答を好む.

私は 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()

しかし、配列の最後までループする方法や、それに基づいてループを構築する方法もよくわかりません。

お時間をいただきありがとうございます。何かヒントがあれば、よろしくお願いします。どんな助けでも大歓迎です!

乾杯、

4

1 に答える 1

1

私はあなたがこのようなものを探していると思います:

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

したがって、$k はキーです。例: "Age"、$v は値です。例: 24

これが行っているのは、その配列キーの値をチェックして、それが空 (空の文字列) であるか、まったく設定されていないか、または false (false、ゼロなど) であるかを確認してから、設定を解除することです。おそらく !isset の部分さえ必要ないでしょうが、とにかくそこに入れましたが、設定されていない場合は設定を解除することはできません。

あなたは unset() で正しい軌道に乗っていました。ほんの少しのナッジが必要でした...いい仕事です:)

于 2013-09-06T04:51:41.313 に答える