在PHP中将字符串转换为数组(所有数据记录器为字符串)

时间:2016-10-23 21:44:18

标签: php oop multidimensional-array

我想要一个multidim。像这样的数组:

array {[RECORD1] => array {
                      [ID]=>"0001",
                      [Name]=>"John",
                      [Address]=>"Street No...."
                     }
[RECORD2] => array {
                      [ID]=>"0002",
                      [Name]=>"Jane",
                      [Address]=>"Street No...."
                     }
      }

我设法创建了这样的代码:

$st = $conn->prepare("SELECT * FROM table WHERE c_id=?");
$au='array(';
    foreach ($_SESSION['cid'] as $cr){
        $st->execute(array($cr));
        $rws = $st->fetchAll(PDO::FETCH_ASSOC);
        foreach ($rws as $rw){}
        $au.='"a'.$cr.'"=>array('; //Record01
        $au.='"id"=>"'.$rw['c_id'].'",';
        $au.='"name"=>"'.$rw['c_name'].'"';
        $au.='),';

    }
    $au=trim($au,',');
    //substr($au,0,-1);
$au.=');';

结果是一个字符串,但是包含数组的内容。

第二个问题:使用OOP做我想要的更好吗?

我需要的是什么:我选择了一些"记录" (可以在以后删除/添加),我会将它们集成到比较页面中。这个数组/类应该足够灵活,以便我可以轻松地改变它(添加/删除记录时)。 我想使用数组我可以轻松删除/添加"记录"。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您可以使用$_SESSION['cid']中的一个cid;

$sSQL = 'SELECT c_id, c_name, c_address FROM table WHERE c_id=:c_id';
$st = $conn->prepare($sSQL);
$st->bindValue( 'c_id', $_SESSION['cid'], PDO::PARAM_INT );
$st->execute();

// create results array
$aResults = array();

// while there are rows to get, loop over and store results in array
while($row = $st->fetch()){
  $aResults[$row['c_id']] = array('Name'=>$row['c_name'], 'Address'=>$row['c_address']);
}