我有一个数据库表名簿。现在我需要从包含以逗号分隔的多个值的多个行值(列名位置)中获取值。现在我需要使用pdo php从多个行中获取值到数组中。
非常感谢
<?php
require_once "includes\config.php";
$sql = 'SELECT * FROM books WHERE shelf_no=2';
$stmt = $db->prepare($sql);
$stmt->execute();
$row = $stmt->fetchALl(PDO::FETCH_ASSOC);
$d = array();
foreach ($row as $value) {
$d[] = explode(",",$value['position']);
}
print_r($d);
?>
结果是
Array ( [0] => Array ( [0] => b1 [1] => b2 ) [1] => Array ( [0] => a2 [1] => a3 ) )
但是我需要单个数组中的所有值
答案 0 :(得分:0)
您将其分解(创建一个新数组),然后将该数组添加到另一个数组中。
您可以遍历爆炸字符串中的每个值并添加它们:
<?php
require_once "includes\config.php";
$sql = 'SELECT * FROM books WHERE shelf_no=2';
$stmt = $db->prepare($sql);
$stmt->execute();
$row = $stmt->fetchALl(PDO::FETCH_ASSOC);
$d = array();
foreach ($row as $value) {
$temp = explode(",",$value['position']);
foreach($temp as $pos){
array_push($d, trim($pos));
}
}
print_r($d);
?>
如果有重复,它们将显示。
答案 1 :(得分:0)
您也可以替换
$d[] = explode(",",$value['position']);
与
array_merge($d, explode(',', $value['position']));
这将使一个数组而不是数组的数组。有关array_merge的更多信息,请访问php.net。
许多PHP函数的性能要比用PHP编写的等效函数更高。即这可能比嵌套的foreach
循环要快。与往常一样,如果这对您很重要,请同时安排时间。