我有以下数组结果:
Array (
[0] => company_1
[1] => company_10
[2] => company_15
)
我想要这样的结果,因为我可以在
mysql IN
查询子句中使用:
$result = "1, 10, 15";
我使用爆炸函数,但它再次分别返回两个数组值,如下所示:
Array (
[0] => Array (
[0] => company
[1] => 1
)
[1] => Array (
[0] => company
[1] => 10
)
[2] => Array (
[0] => company
[1] => 15
)
)
但是想知道如何才能单独获取数字?
如果你的初始数据是一个数组,只需再次爆炸它们,将它们收集在里面,最后使用内爆。示例:
$result = array('company_1', 'company_10', 'company_15');
$result = array_map(function($piece){
return explode('_', $piece)[1]; // note: for php 5.4 or greater
// return str_replace('company_', '', $piece);
}, $result);
$result = implode(', ', $result);
echo $result; // 1, 10, 15
爆炸后必须选择第二部分。
$result = array_map(function ($val) {
$tmp = explode('_', $val);
return isset($tmp[1]) ? $tmp[1] : null;
}, $array);
$result = implode(',', $result); // "1,10,5"
PHP 有一个用于此清理任务的本机函数:
filter_var_array()
。
代码:(演示)
$array = [
'company_1',
'company_10',
'company_15',
];
var_export(
filter_var_array(
$array,
FILTER_SANITIZE_NUMBER_INT,
)
);
输出:
array (
0 => '1',
1 => '10',
2 => '15',
)
然后可以使用以下建议将该数组传递到准备好的语句中:如何将字符串数组与 mysqli 准备好的语句绑定?。 不应将值直接传递到 SQL 字符串中。