1

これは非常に基本的なことだと思いますが、これを解決する方法が本当にわかりません。php配列を次の表記に変換して、javascriptスクリプト内で使用したいと思います。これらは、初期化でjsスクリプトに渡される国です。

ソース表記(PHP)

array(3) { [0]=> array(1) { ["code"]=> string(2) "AR" } [1]=> array(1) { ["code"]=> string(2) "CO" } [2]=> array(1) { ["code"]=> string(2) "BR" } }

望ましい結果(JS)

[ "AR", "FK","CO", "BO", "BR", "CL", "CR", "EC", "GT", "HN", "LT", "MX", "PA", "PY", "PE", "ZA", "UY", "VE"]

必要に応じて元のPHP配列を再フォーマットできます。知っておく必要があるのは、目的の結果を得るためにフォーマットする方法です。

次のコードを使用して、配列をjsに渡します。

echo "<script>var codes = " . json_encode($codes) . ";</script>";
4

3 に答える 3

3

次のように機能します。

<?php

$arr[0]['code'] = 'AR';
$arr[1]['code'] = 'CO';
$arr[2]['code'] = 'BR';

print_r($arr);


function extract_codes($var) { return $var['code']; }

print_r(array_map('extract_codes', $arr));

echo json_encode(array_map('extract_codes', $arr));

?>

出力:

Array
(
    [0] => Array
        (
            [code] => AR
        )

    [1] => Array
        (
            [code] => CO
        )

    [2] => Array
        (
            [code] => BR
        )

)
Array
(
    [0] => AR
    [1] => CO
    [2] => BR
)
["AR","CO","BR"]

これは、2文字の各コードを通常の1次元配列にマッピングし、それをjson_encodeに渡すことで機能します。

于 2012-10-17T16:30:05.040 に答える
0

一緒に行くarray_reduce

$output = array_reduce($array, function($result, $item){

    $result[] = $item['code'];
    return $result;

}, array());

echo json_encode($output);
于 2012-10-17T16:40:52.020 に答える
0

PHP連想配列をループして、適切な変数を設定する必要があります。このような:

$item = ''; // Prevent empty variable warning
foreach ($php_array as $key => $value){
  if (isset($key) && isset($value)) { // Check to see if the values are set
    if ($key == "code"){ $item .= "'".$value."',"; } // Set the correct variable & structure the items
  }
}
$output = substr($item,'',-1); // Remove the last character (comma)
$js_array = "[".$output."]"; // Embed the output in the js array
$code = $js_array; //The final product
于 2012-10-17T16:47:32.870 に答える