$sql = "select id, status, date...from arts order by date desc limit 300";
$st = $db->prepare($sql);
$st->execute();
$arr = $st->fetchAll();
print_r($arr);
Array
(
[0] => Array
(
[id] => 2272
[0] => 2272
[status] => sky
[1] => sky
)
[1] => Array ...
如何获得相同但没有数字索引的方法,像这样:
Array
(
[0] => Array
(
[id] => 2272
[status] => sky
)
[1] => Array ...
lorem ipsum lorem ipsum lorem ipsum lorem ipsum
答案 0 :(得分:3)
无需手动执行此操作。只需让PDO知道您想要的结果即可。
更改
$arr = $st->fetchAll();
到
$arr = $st->fetchAll(PDO::FETCH_ASSOC);
答案 1 :(得分:0)
使用此函数获取非数值
foreach ($arr as $key => $value) {
if (is_int($key)) {
unset($arr[$key]);
}
}
答案 2 :(得分:0)
您将必须运行2个循环并取消设置。
SELECT * FROM universities LEFT JOIN university_courses ON university_courses.university_id = universities.id LEFT JOIN courses ON courses.id = university_courses.course_id LEFT JOIN countries ON countries.id = universities.country_id WHERE FIND_IN_SET(university_courses.course_id, ?) AND FIND_IN_SET(universities.country_id, ?) GROUP BY university_courses.university_id
答案 3 :(得分:0)
我能想到的最简单的方法(Magnus方法除外)可能是array_diff_key。
我添加此答案是因为其他人以后可能需要非数据库解决方案。
创建一系列可能的数字键。
我创建了100个,进行更改以满足您的需求。
$range = range(0,100);
foreach($arr as &$sub){
$sub = array_diff_key($sub, $range);
}
这将循环遍历每个子数组,并过滤掉0-100之间的所有数字键。