2

結果から mysql 配列を返し、その結果を JSON の戻り値または XML の一部 (これ以外のものも含まれます) に自動的に出力したいと考えており、出力に単純なループ関数を使用したいと考えていました。配列インデックス/キーの複製を除いて、うまく機能します。例えば:

[23] => 21.00
[cost] => 21.00
[24] => 0.00
[costproduct] => 0.00
[25] => 21.00
[costtotal] => 21.00

重複せずにきれいにしたいと思います。ループに使用していた単純なコードは次のとおりです。

function array_loop_output( $array, $format = 'json', $output = '' ){

    if(is_array($array)){

        foreach($array as $key => $value){

            if(is_array($value)){

                if($format == 'xml'){

                    $output .= '<' . $key . '>';

                    $output .= array_loop_output( $value, $format );

                    $output .= '</' . $key . '>';

                }else{

                    $output[$key] = array_loop_output( $value, $format );

                }

            }else{

                if($format == 'xml'){

                    if(is_numeric($value)){

                        $output .= xmltagstring(array('tag'=>$key,'value'=>$value))."\n";

                    }else{

                        $output .= xmltagstring(array('tag'=>$key,'value'=>$value,'cdata'=>true))."\n";

                    }

                }else{ // json

                    if(is_numeric($value)){

                        $output[$key] = $value;

                    }else{

                        $output[$key] = forjson($value);

                    }   
                }
            }
        }
    }

    return $output;

}

私は私の金髪の瞬間の1つを持っていると思うので、これを行うためのきれいな方法はありますか? どうもありがとう。

4

1 に答える 1

1

数値キーと連想キーの両方を持つ結果のタイプは、フェッチ配列関数のいずれかを使用したためです。

  • mysqli_result::fetch_array()
  • PDO::FETCH_BOTH
  • mysql_fetch_array()

assocの代わりにを使用するとarray、結果には [string] 連想キーのみが含まれます。

  • mysqli_result::fetch_assoc()
  • PDO::FETCH_ASSOC
  • mysql_fetch_assoc()
于 2013-07-04T16:23:49.057 に答える