簡體   English   中英

如何使用pdo mysql在php中獲取包含多個以逗號分隔的多個值的多行值到單個數組中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM