【问题标题】:Associative array关联数组
【发布时间】:2013-06-09 19:58:14
【问题描述】:

我有两个数组:

 arr1([0]=>1400.20
      [1]=>1630.32
      [2]=>2531.30
      [3]=>9845.62)

 arr2([0]=>150
      [1]=>134
      [2]=>901
      [3]=>631)

我将它们组合为:

 arr3  ([150]=>1400.20
        [134]=>1630.32
        [901]=>2531.30
        [631]=>9845.62)

但我需要将arr3 转换为这种形式:

 arr4 ('150'=>1400.20,
       '134'=>1630.32,
       '901'=>2531.30,
       '631'=>9845.62)

有什么办法可以将arr3转换成这种形式?

我使用两个PHP程序通过phpMyGraph创建了一个图表 第一个程序从数据库中获取信息并创建两个数组,arr1arr2arr1 中的值将是 x 轴,而 arr2 中的值将是 y 轴。合并后

$arr3 = array_combine($arr2, $arr1)

我使用“序列化”将arr3 发送到另一个程序。但它不显示图表并显示此消息:

带有消息“提供数据不是数组”的异常“异常”。在 blah/blah/phpMyGraph4.0.php:801 堆栈跟踪:....

我想我可能需要使用 exmple 中的 arr4 格式

【问题讨论】:

  • 你能把你的代码贴在你结合这些的地方吗?
  • 考虑到 PHP 是弱类型的,真的没有区别。
  • 我想知道有什么区别
  • 这是什么意思?你需要你的键是字符串吗?
  • 已经这样了,试试echo $arr3['150'];

标签: php associative-array


【解决方案1】:
$arr3 = array();
foreach( $arr1 as $key => $value ){
    // arr1 [0]=>150
    // arr2 [0]=>1500
    // arr3[150] => 1500
    $arr3[$value] = $arr2[$key];
    
}

为了避免内存使用

  foreach( $arr1 as $key => $value ){
        // arr1 [0]=>150
        // arr2 [0]=>1500
        // arr2 [150] => 1500
        // delete arr2[0];
        $arr2[$value] = $arr2[$key];
        unset($arr2[$key]);
        
    }

【讨论】:

    【解决方案2】:
    foreach( $arr3 as &$key => &$value ){
        $key = '' . $key . '';
    }
    

    但正如其他人所说,PHP 的类型标准非常弱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 2011-07-22
      • 2011-05-22
      • 2011-07-04
      • 1970-01-01
      • 2014-04-01
      相关资源
      最近更新 更多