Cod*_*ium 2 php arrays extract
考虑像这样的数组:
$arr = array(
'key' => 'foo'
'key2' => 'bar',
0 => 'num_foo',
1 => 'num_bar'
);
Run Code Online (Sandbox Code Playgroud)
如何提取0和1以下的值?(除了使用 for 循环)。也许有任何标准函数可以完成这项工作?
如果您\xe2\x80\x99 使用的 PHP 版本 >= 5.6,则可以使用array_filter, 以及指示它将密钥传递给回调函数的标志。
$arr = array(\n \'key\' => \'foo\',\n \'key2\' => \'bar\',\n 0 => \'num_foo\',\n 1 => \'num_bar\'\n);\n\n$new_array = array_filter($arr, function($key) {\n return is_numeric($key);\n}, ARRAY_FILTER_USE_KEY);\n\nvar_dump($new_array);\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n编辑:正如罗比指出的,使用is_numeric这里是更好的选择。(之前我的例子使用is_int。)
编辑2:也许is_int这里实际上是更好的选择。is_numeric对于诸如以下的值将返回 true+0123.45e6、 或十六进制/二进制数字表示法以及 \xe2\x80\x93 之类的值,将返回 true ,不确定 \xe2\x80\x99 是否需要。
is_int对于诸如以下的值通常会返回 false\'1\'。它在这里起作用,因为我们正在处理数组 \xe2\x80\x93 并且 PHP 会自动将数组键转换为整数(如果它们是 \xe2\x80\x9cinteger 字符串)。\xe2\x80\x9d
| 归档时间: |
|
| 查看次数: |
2424 次 |
| 最近记录: |