[英]PHP: Insert separated comma string value with as multiple array value Into MySql
[英]How to fetch multiple row value which contains multiple value separated by comma into a single array in php using pdo mysql
我有一個數據庫表名書籍。 現在我需要從包含多個用逗號分隔的值的多行值(列名位置)中獲取值。 現在我需要使用 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
)
)
但我需要一個數組中的所有值,如下所示:
Array ( [0] => b1 [1] => b2 [2] => a2 [3] => a3 )
您正在分解它(創建一個新數組),然后將該數組添加到另一個數組中。
您可以遍歷分解字符串中的每個值並添加它們:
<?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);
?>
如果有重復,他們會顯示。
你也可以更換你的
$d[] = explode(",",$value['position']);
和
array_merge($d, explode(',', $value['position']));
這將創建一個數組而不是一組數組。 php.net 上有關array_merge 的更多信息。
許多 PHP 函數的性能比用 PHP 編寫的等效函數要高。 即這可能比嵌套的foreach
循環更快。 與往常一樣,如果這對您很重要,請雙向計時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.