第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

根據(jù)列值過濾關(guān)聯(lián)行,其中行位于 3d 數(shù)組的特定子數(shù)組中

根據(jù)列值過濾關(guān)聯(lián)行,其中行位于 3d 數(shù)組的特定子數(shù)組中

PHP
翻翻過去那場(chǎng)雪 2023-11-05 15:46:16
我正在嘗試 array_filter() 刪除空白的嵌套數(shù)組,但我只取回所有嵌套數(shù)組。我知道我用錯(cuò)了,但看到了類似的案例,就像我正在嘗試的那樣。這是數(shù)據(jù):[    'ticket_number' => 'sdfsdfsdf 2',    'strategy_id' => '5',    'journal_entries_strategy_conditions' => [        (int) 0 => [            'strategies_condition_id' => ''        ],        (int) 1 => [            'strategies_condition_id' => '1'        ]    ],    'timeframe' => '',]我想刪除'strategies_condition_id' => ''但我得到的只是[    (int) 0 => [        'strategies_condition_id' => ''    ],    (int) 1 => [        'strategies_condition_id' => '1'    ]]我認(rèn)為我使用它是正確的:debug(  array_filter(    $data['journal_entries_strategy_conditions'],     function($value) { return !is_null($value) && $value !== ''; }  ));
查看完整描述

4 回答

?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

您$value傳遞給過濾函數(shù)的也是一個(gè)關(guān)聯(lián)數(shù)組。


因此,您必須檢查“值的值”,使用current()使過濾函數(shù)與鍵名無關(guān),從而在需要時(shí)使此代碼可移植。我將函數(shù)參數(shù)命名為$entry避免混淆:


$data= [

    'ticket_number' => 'sdfsdfsdf 2',

    'strategy_id' => '5',

    'journal_entries_strategy_conditions' => [

        (int) 0 => [

            'strategies_condition_id' => ''

        ],

        (int) 1 => [

            'strategies_condition_id' => '1'

        ]

    ],

    'timeframe' => '',

];



var_dump(

    array_filter(

        $data['journal_entries_strategy_conditions'],

        function($entry) {

            $value = current($entry);

            return !is_null($value) && $value !== '';

        }

    )

);

結(jié)果是:


array(1) {

  [1]=>

  array(1) {

    ["strategies_condition_id"]=>

    string(1) "1"

  }

}


查看完整回答
反對(duì) 回復(fù) 2023-11-05
?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

因?yàn)樗且粋€(gè)嵌套數(shù)組,所以您需要走更長(zhǎng)的路線并使用 array_column,然后用鍵的交集替換數(shù)組子數(shù)組。


$filtered = array_filter(array_column($arr['journal_entries_strategy_conditions'], 'strategies_condition_id'));


$arr['journal_entries_strategy_conditions'] = array_intersect_key($arr['journal_entries_strategy_conditions'], $filtered);


var_dump($arr);

https://3v4l.org/iC66a

通過將其設(shè)為單行,可以使其可讀性更差。


并且您不需要為此使用自定義函數(shù)。

Array_filter 默認(rèn)刪除 '' 和 null 值。


查看完整回答
反對(duì) 回復(fù) 2023-11-05
?
哆啦的時(shí)光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊

由于您在過濾數(shù)組中有一個(gè)關(guān)聯(lián)數(shù)組,從技術(shù)上講它不是空的,這就是您的代碼不起作用的原因。


如果您希望過濾數(shù)組中的指定鍵(假設(shè)該鍵確實(shí)存在)不為空,只需傳遞該鍵值,如下所示:


$data = [

        (int) 0 => [

            'strategies_condition_id' => '',

            'test' => '',

            'asd' => 'asd'

        ],

        (int) 1 => [

            'strategies_condition_id' => '1'

        ]

    ];

$key = 'strategies_condition_id';

$result = array_filter($data, function($value) use ($key) {dump($value); return !is_null($value[$key]) && $value[$key] !== ''; });

輸出:


array:1 [

  1 => array:1 [

    "strategies_condition_id" => "1"

  ]

]

數(shù)組0被跳過,因?yàn)樗膕trategies_condition_id鍵為空。


還有另一種簡(jiǎn)單的方法來檢查過濾數(shù)組中是否有空值:


$data = [

        (int) 0 => [

            'strategies_condition_id' => '',

            'test' => 'test'

        ],

        (int) 1 => [

            'strategies_condition_id' => '1'

        ],

        (int) 2 => [

            'strategies_condition_id' => '2',

            'test' => ''

        ]

    ];

array_filter($data, function($value) { return !in_array('',$value); });

輸出:


array:1 [

  1 => array:1 [

    "strategies_condition_id" => "1"

  ]

]


查看完整回答
反對(duì) 回復(fù) 2023-11-05
?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊

array_filter()在特定的第一級(jí)元素上使用單個(gè)元素即可完成這項(xiàng)工作。在函數(shù)的回調(diào)內(nèi)部,不需要任何函數(shù)調(diào)用;只需訪問目標(biāo)關(guān)聯(lián)子數(shù)組值并檢查它是否為真。這與函數(shù)式編碼一樣簡(jiǎn)單。

代碼:(演示

$array['journal_entries_strategy_conditions'] = array_filter(

    $array['journal_entries_strategy_conditions'],

    fn($row) => $row['strategies_condition_id']

);

與經(jīng)典循環(huán)等效的內(nèi)容可以unset()有條件地使用。(演示

foreach ($array['journal_entries_strategy_conditions'] as $i => $row) {

    if (!$row['strategies_condition_id']) {

        unset($array['journal_entries_strategy_conditions'][$i]);

    }

}

或者,如果您希望有一個(gè)重新索引的子數(shù)組,array_splice()這會(huì)很有幫助。(演示

foreach ($array['journal_entries_strategy_conditions'] as $i => $row) {

    if (!$row['strategies_condition_id']) {

        array_splice($array['journal_entries_strategy_conditions'], $i, 1);

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-11-05
  • 4 回答
  • 0 關(guān)注
  • 208 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)