目前,我有以下几点:选择关联数组中的MySQL
$query='select concat("[",key,"=>",value,"]")
from table';
if(isset($query))$r=$mysql->query($query);
if(isset($r)){
for($i=1;$i<=$r->num_rows;$i++){
$r->data_seek($i-1);
$a[$i-1]=$r->fetch_array(MYSQLI_ASSOC);
$a[$i-1]=parse_array($a[$i-1]);
}
}
$mysql->close;
function parse_array($parent){
foreach($parent as$k=>$val){
if(strpos($val,']')){
$array=explode(',',substr($val,1,-1));
foreach($array as$val){
$keypair=explode("=>",$val);
$newarray[$keypair[0]]=$keypair[1];
}
$parent[$k]=parse_array($newarray);
}
}
}
必须有这样做的更优雅的方式 - 也许是内置到MySQL?我试图尽量减少运行PHP所花费的时间 - 我希望它已经以数组形式到达PHP,但如果我尝试子查询,则MySQL会启动Subquery returns more than one result
。
编辑:这里是table
:
+----------+----------+
| value | key |
+----------+----------+
| img.jpg | src |
+----------+----------+
输出应该是:
[
'src'=>'img.jpg'
]
这是初始化为''$ i'的方式($ I-1; $ I <=$r-> NUM_ROWS; $ I ++){'?它应该是'for($ i = 0 ...' –
'table'中的'key1'和'key2'列吗? – Terminus
@Terminus是的,与value1和value2一样 –