如何在 PHP PDO 中制作与密钥对相同的数组值?

How to make same array values as key pair in PHP PDO?

我正在使用 PHP PDO 从我的数据库 table 中获取选项。

 public function fetch_custom_options($type){
    $sql = "SELECT option_id, option_name,option_value,type,position FROM ts_options WHERE type=:type";
    $stmt = $this->dbConnection->prepare($sql);
    $stmt->bindParam(":type", $type, PDO::PARAM_STR);
    $stmt->execute();
    $rows = $stmt->fetchAll();
    return $rows;
}

如您在查询中所见,我在同一个 table 中有两列,如 option_name 和 option_value。 我想将每个 option_name 作为键,将每个 option_value 作为值,并将它存储在一个 array() 中,就像这样 -

public function fetch_custom_options($type){
    $sql = "SELECT option_id, option_name,option_value,type,position FROM ts_options WHERE type=:type";
    $stmt = $this->dbConnection->prepare($sql);
    $stmt->bindParam(":type", $type, PDO::PARAM_STR);
    $stmt->execute();
    $rows = $stmt->fetchAll();
    $custom=array(); 
    foreach($rows as $row){ 
        $custom[] = array($row['option_name']=>$row['option_value']);
    }
    return $custom;
}

当我使用 option_name 值访问自定义数组值时,它会给我 undefine -

$rows= $getFromPostClass->fetch_custom_options('ad');
foreach($rows as $row) 
{ 
    $header_index=$row['header_index'];
}
echo $header_index; 

header_index是一个option_name,它作为键存储在第二个数组中。

Notice: Undefined index: header_index in

我的 table 中有很多价值观,例如 -

option_name , option_value ,type 
header_index, 12344   ,  ad 
below_title , 348478   ,  ad 
below_content , 77676  ,  ad  

我不确定,但我详细说明了。 我想使用 foreach() 循环将 option_name 值存储为键,将 option_value 值存储为数组中的值 - 我会使用名称访问数组值并获取值 - 喜欢 - 回声$行['header_index']; 应显示同一行的option_value。

您应该创建关联数组,而不是二维数组。

public function fetch_custom_options($type){
    $sql = "SELECT option_id, option_name,option_value,type,position FROM ts_options WHERE type=:type";
    $stmt = $this->dbConnection->prepare($sql);
    $stmt->bindParam(":type", $type, PDO::PARAM_STR);
    $stmt->execute();
    $rows = $stmt->fetchAll();
    $custom=array(); 
    foreach($rows as $row){ 
        $custom[$row['option_name']]=>$row['option_value']);
    }
    return $custom;
}

$options= $getFromPostClass->fetch_custom_options('ad');
$headers = $options['header_index'];