目前,我有以下幾點:選擇關聯數組中的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一樣 –