php一维数组转化二维数组实现数组键值替换及转化json乱码

<?php

header("Content-type:text/html;charset=UTF8");

session_start();

$x = $_SESSION['attribute_name'];

$arr = $_SESSION['attribute'];

foreach($arr as $k => $val)

{    

if(!isset($tmp[$val[0]]))

{       

  $tmp[$val[0]][$val[1]] = array( 'attribute_val_id'=>$val[1], 'attribute_val'=>$val[2], );   

  }

else

{      

   $tmp[$val[0]][$val[1]] = array( 'attribute_val_id'=>$val[1], 'attribute_val'=>$val[2], );    

}

}

echo "<pre>";

$list = array();
foreach($tmp as $kx=>$v)
{
 foreach($x as $ky)
 {
  if($kx==$ky['attribute_id'])
  {
   $list[$ky['attribute_name']] = $v;
  }
 }
}
echo $product_attribute = preg_replace("#\\\u([0-9a-f]{4}+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))",json_encode(array($list)));

注:$_SESSION['attribute_name'];的打印结果:Array
(
    [0] => Array
        (
            [attribute_id] => 29
            [attribute_name] => size
        )

    [1] => Array
        (
            [attribute_id] => 30
            [attribute_name] => 大小
        )

    [2] => Array
        (
            [attribute_id] => 26
            [attribute_name] => color
        )

)

$arr = $_SESSION['attribute'];的打印结果:Array
(
    [0] => Array
        (
            [0] => 29
            [1] => 41
            [2] => 200cm
        )

    [1] => Array
        (
            [0] => 29
            [1] => 40
            [2] => 100cm
        )

    [2] => Array
        (
            [0] => 30
            [1] => 43
            [2] => 中
        )

    [3] => Array
        (
            [0] => 30
            [1] => 44
            [2] => 小
        )

    [4] => Array
        (
            [0] => 30
            [1] => 42
            [2] => 大
        )

    [5] => Array
        (
            [0] => 26
            [1] => 38
            [2] => green
        )

    [6] => Array
        (
            [0] => 26
            [1] => 39
            [2] => blue
        )

)

 

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/facetwitter/p/3659945.html

转载于:https://www.cnblogs.com/facetwitter/p/3659945.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值