$a = array(
0 => array( 'one' => 1, 'two' => 2 ),
1 => array( 'one' => 3, 'two' => 4 ),
2 => array( 'one' => 5, 'two' => 2 )
);
$c = count( $a );
$r = array();
for ( $i = 0; $i < $c; $i++ )
{
if ( $a[$i]['two'] == 2 )
$r[] = $a[$i];
}
Run Code Online (Sandbox Code Playgroud)
有没有更清洁的方法来完成上述所有工作?
你试过用过array_filter()吗?
$r = array_filter($a, function($var) {
return ($var['two'] === 2);
});
Run Code Online (Sandbox Code Playgroud)
以上输出与原始代码略有不同:
Yours:
array(
0 => array('one' => 1, 'two' => 2),
1 => array('one' => 5, 'two' => 2)
)
Using array_filter:
array(
0 => array('one' => 1, 'two' => 2),
2 => array('one' => 5, 'two' => 2) // Note the key is 2, not 1
)
Run Code Online (Sandbox Code Playgroud)
如果您需要的键折叠,则可以跟进array_filter()与array_values()或array_multisort()
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |