PHP的foreach以及数组在实际开发中的使用

  • A+
所属分类:PHP ThinkPHP
$a = Db::connect('database')->query('select * from XXX where id=:id',['id'=>10]);
foreach ($a as $key => $value) {
  switch ($key) {
     case 0:
         // a_name: "主色"; a_type:1; a_id:200
         $a_value = "紫色";
         break;
     case 1:
         // a_name: "第二色"; a_type:1; a_id:201
         $a_value = "荧光红";
         break;
      case 2:
         // a_name: "风格"; a_type:1; a_id:202
         $a_value = "时尚";
         break;
      case 3:
         // a_name: "产地"; a_type:0; a_id:203
         $a_value = "中国";
         break;
     default:
         $a_value= "";
         # code...
         break;
   }
 $aid = $value['a_id'];
 $a_name[] = $value['a_name'];
 $a_ids[] = $aid;// 赋值给数组
 // a_type 0:唯一属性、1:单选属性、2:复选属性
 $a_types[] = $value['a_type'];
 $a_values[] = $a_value;// 赋值给数组
}
// preg_grep 函数用于返回匹配模式的数组条目。以"1"为条件,用正则匹配出是1的索引数组
$a_types2 = preg_grep("/^[1]*$/",$a_types);
// 以匹配到的数组索引为条件,进行foreach遍历
foreach ($a_types2 as $key2 => $value2) {
  $a_ids2[] = $a_ids[$key2];
  $a_values2[] = $a_values[$key2];
  $a_names[] = $a_name[$key2];    
}
// 将一个一维数组的值转化为字符串,返回一个字符串,其内容为由 "|" 分割开的数组的值。
$goods_a_p = implode("|",$a_ids2);
// 200|201|202
// array_combine()函数会得到一个新数组,它由一组提交的键和对应的值组成。
$goods_a_z = array_combine($a_names,$a_values2);
// array('主色' => "紫色",'第二色' => "荧光红",'风格' => "时尚");
// 获取当前数组键和值 each()经常和 list() 结合使用来遍历数组
while (list($key, $val) = each($goods_a_z))
{
  // echo "$key:$val<br />";
  $goods_a_a[] = $key.':'.$val;  
}
// 将一个一维数组的值转化为字符串,返回一个字符串,其内容为由 "\n" 分割开的数组的值。
$goods_a = implode("\n",$goods_a_a);
// 主色:紫色
// 第二色:荧光红
// 风格:时尚
  • 免费领红包
  • 支付宝红包扫一扫
  • weinxin
  • 免费提现
  • 支付宝全额提现
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 三三 来自天朝的朋友 QQ浏览器  vivo Y55A Build/MMB29M 中国 移动 0

      厉害厉害厉害

        • avatar 浅夏 Admin 来自天朝的朋友 QQ浏览器  1605-A01 Build/MMB29M 浙江省 电信

          @三三 低调低调