【问题标题】:Convert String to Array in JavaScript在 JavaScript 中将字符串转换为数组
【发布时间】:2011-09-22 15:35:22
【问题描述】:

我有一个这样的 PHP 字符串:

$string = 'a => 1 , b => 2 , c => 3 , d => 4';

我根据数据库中的数据构建的,其中每个 "x => y" 代表 x 和 y 之间的关联关系。

然后我将此字符串传输到 html 文档 (JQuery) 并尝试在 JavaScript 中从中创建一个数组,以便我可以在客户端进行处理。

问题:

是否可以从字符串中创建 JavaScript 数组?
例如,我需要能够通过调用'alert(array["c"]);' 或类似的方法来检索数组中的值。

注意 - 如有必要,请随意更改上述字符串 ($string) 的语义。

任何帮助感谢大家......

【问题讨论】:

  • 我认为,与其像这样以自己的格式编码数组内容,不如使用 JSON。
  • 您是从这样的 PHP 字符串开始,还是在您的 PHP 代码中有一个数组,然后将其转换为该字符串?
  • 我同意,使用 JSON。在 PHP 中创建键/值对的映射并使用 json_encode() 对其进行转换。

标签: php javascript jquery arrays string


【解决方案1】:

您应该研究 JSON。 PHP具有编写JSON的函数,而javascript可以解码这样的JSON objects and create native objects

【讨论】:

  • +1,不要试图解决结果,而是解决原因。
【解决方案2】:

PHP 代码

(例如,一个文件,如array.php):

$array=array(
    'a'=>'I am an A',
    'param2_customname'=>$_POST['param2'],
    'param1'=>$_POST['param1']
);
echo json_encode($array);

jQuery 代码:

$.post('array.php', {'param1': 'lol', 'param2': 'helloworld'}, function(d){
   alert(d.a);
   alert(d.param2_customname);
   alert(d.param1);
},'json');

你可以将它用于数组,记住每次请求末尾的'json'标签。

【讨论】:

  • 我如何提醒d的全部内容?
  • 连接,我猜:alert(d.a+d.param2_customname+d.param1);
【解决方案3】:

你可以在javascript中使用split()方法:

http://www.w3schools.com/jsref/jsref_split.asp

【讨论】:

    【解决方案4】:

    我会这样做

    <?php
    $string = "a => 1, b => 2";
    $arr1 = explode(",",$string);
    $arr2 = array();
    foreach ($arr1 as $str) {
        $arr3 = explode("=>", $str);
        $arr2[trim($arr3[0])] = trim($arr3[1]);
    }
    ?>
    <script type="text/javascript">
    $(document).ready(function(){
        var myLetters = new Array();
        <?php foreach($arr2 as $letter => $number): ?>
        myLetters['<?php echo $letter; ?>'] = "<?php echo $number; ?>";
        <?php endforeach; ?>
    });
    </script>
    

    会输出这个

    <script type="text/javascript">
    $(document).ready(function(){
        var myLetters = new Array();
            myLetters['a'] = "1";
            myLetters['b'] = "2";
        });
    </script>
    

    【讨论】:

      猜你喜欢
      • 2022-11-29
      • 2015-11-11
      • 2022-01-23
      • 2019-06-27
      • 2017-05-15
      • 1970-01-01
      • 2020-12-23
      • 1970-01-01
      相关资源
      最近更新 更多