PHP 7:如何筛选数组中state为'KS'的所有成员
如何筛选PHP数组中state为'KS'的成员?
嘿,我来帮你搞定这个问题!要从你给出的数组里筛选出所有state值为'KS'的元素,有两种实用的PHP方法,我给你详细说说:
方法一:用array_filter()快速过滤
这是PHP里处理数组过滤最常用的函数,简洁又高效,只需要写个简单的回调函数来判断条件就行:
// 先定义你的原始数组 $locations = [ 'CA,Santa Barbara' => [ 'state' => 'CA', 'city' => 'Santa Barbara' ], 'KS,Andover' => [ 'state' => 'KS', 'city' => 'Andover' ], 'KS,Wichita' => [ 'state' => 'KS', 'city' => 'Wichita' ] ]; // 筛选出state等于'KS'的元素 $ksLocations = array_filter($locations, function($item) { return $item['state'] === 'KS'; }); // 打印结果看看 print_r($ksLocations);
运行这段代码后,$ksLocations里就会包含'KS,Andover'和'KS,Wichita'这两个成员啦。array_filter()会自动遍历数组,把回调函数返回true的元素保留下来,非常省心。
方法二:手动遍历数组(适合需要额外操作的场景)
如果你需要在筛选过程中做一些额外的处理(比如修改元素内容、记录日志之类的),手动循环遍历会更灵活:
$ksLocations = []; foreach ($locations as $key => $item) { // 判断当前元素的state是否为'KS' if ($item['state'] === 'KS') { // 符合条件就加入新数组 $ksLocations[$key] = $item; } } print_r($ksLocations);
这种方法逻辑更直观,你可以在if块里添加任何你需要的额外逻辑,自由度更高。
两种方法都能达到你的需求,要是追求代码简洁就选第一种,需要额外操作就用第二种~
内容的提问来源于stack exchange,提问作者Eric Snyder
相关产品推荐
相关产品推荐

