0

DBからデータをフェッチしていますが、次のようになっています。

[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}] 

ここで、key-1は列の名前です。(エントリは1つしかないので)。

列の値のみを抽出して、次のように出力される新しい配列に保存したいと思います。

{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"} 

私はそれをこのように正確に見せたいのですが: [{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}]

私はこれを試しました:

$cart["key-1"]=$output["key-1"];

ここで、$ outputは、最初に表示されたDBの結果です([]が付いたもの)。

$cartは私が欲しい新しい配列です。

どちらも次のように宣言されています。

$cart=array();
$output=array();

ここで$output[]=$row、行はDBフェッチの結果です。どうやってするの?

4

3 に答える 3

1

これを行う1つの方法は、ここでデータベース行を文字列に置き換え、とを利用したことですjson_decode()json_encode()

$data = '[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}]';

// convert to an array
$data = json_decode($data, true);

// create new array here
$cart = array();

for ($i = 0; $i < count($data); $i++)
{
    foreach ($data[$i] as $k => $v)
    {
        if (strpos($k, 'key') !== FALSE)
        {
            $cart[$k] = $v;
        }
    }
}

echo $cart['key-1'] . '<br/>';

echo json_encode($cart);

出力:

1
{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}
于 2012-12-15T11:29:24.227 に答える
0

これは非常に混沌とした質問です。私が集めたものからあなたは多分これが欲しいです..?

$cart=array();
foreach ($output as $index=>$value){
  if stripos($index,"key-"){
    cart[$index]=$value;
  }
}
于 2012-12-15T11:27:49.707 に答える
0

mysql_fetch_assoc()列名のみを取得するために使用します;)

while ($row = mysql_fetch_assoc($result_of_query))
{
    echo $row['key-1'];
    echo $row['key-2'];
}
于 2012-12-15T11:28:46.010 に答える