$shopinfo="黑色@@@/70A/11/12/13/@@@/70B/21/22/23/@@@/70C/21/22/23/@@@/70D/21/22/23/@@@/70E/21/22/23/@@@/75A/21/22/23/@@@/75B/21/22/23/@@@/75C/21/22/23/@@@/75D/21/22/23/@@@/75E/21/22/23/@@@/80A/21/22/23/@@@/80B/21/22/23/@@@/80C/21/22/23/@@@/80D/21/22/23/@@@/80E/21/22/23/@@@/85A/21/22/23/@@@/85B/21/22/23/@@@/85C/21/22/23/@@@/85D/21/22/23/@@@/85E/21/22/23/@@@/90A/21/22/23/@@@/90B/21/22/23/@@@/90C/21/22/23/@@@/90D/21/22/23/@@@/90E/21/22/23/###红色@@@/70A/11/12/13/@@@/70B/21/22/23/@@@/70C/21/22/23/@@@/70D/21/22/23/@@@/70E/21/22/23/@@@/75A/21/22/23/@@@/75B/21/22/23/@@@/75C/21/22/23/@@@/75D/21/22/23/@@@/75E/21/22/23/@@@/80A/21/22/23/@@@/80B/21/22/23/@@@/80C/21/22/23/@@@/80D/21/22/23/@@@/80E/21/22/23/@@@/85A/21/22/23/@@@/85B/21/22/23/@@@/85C/21/22/23/@@@/85D/21/22/23/@@@/85E/21/22/23/@@@/90A/21/22/23/@@@/90B/21/22/23/@@@/90C/21/22/23/@@@/90D/21/22/23/@@@/90E/21/22/23/###黄色@@@/70A/11/12/13/@@@/70B/21/22/23/@@@/70C/99/22/23/@@@/70D/21/22/23/@@@/70E/21/22/23/@@@/75A/21/22/23/@@@/75B/21/22/23/@@@/75C/21/22/23/@@@/75D/21/22/23/@@@/75E/21/22/23/@@@/80A/21/22/23/@@@/80B/21/22/23/@@@/80C/21/22/23/@@@/80D/21/22/23/@@@/80E/21/22/23/@@@/85A/21/22/23/@@@/85B/21/22/23/@@@/85C/21/22/23/@@@/85D/21/22/23/@@@/85E/21/22/23/@@@/90A/21/22/23/@@@/90B/21/22/23/@@@/90C/21/22/23/@@@/90D/21/22/23/@@@/90E/21/22/23/";$s=$shopinfo;
foreach(explode('###',$s) as $v){
  $arr = explode('@@@/',$v);
  $k = array_shift($arr);
  $p = $q = array();
  foreach($arr as $r) {
    $t = explode('/', trim($r, '/'));
    $p[] = array_shift($t);
    $q[] = $t;
  }
  $ar[$k] = array_merge(array($p), $q);  
  
}
print_r($ar);如何判断某个元素在不在数组中,是数组的第几个元素,并更新数组中指定元素内容的比如:首先判断数组中,是否有('黑色')再判断是否有('70B')找到('70B' 后的第3位元素,以/杠隔开为一个元素,以上例打到的值为”23“)
假如我现在想对23-3 让23的值 更新成’20‘ 其它数组的数据不变,应该怎么操作??

解决方案 »

  1.   

    你这个数组结构很乱……你不知道array_merge对于数值键名是不覆盖合并重排的么?还是你就需要这样的结构?
    对于你这个数据结构array_key_exists ( '黑色' , $ar )
    $i=array_search('70B', $ar['黑色'])找到key$z=3; 你要找第三个值
    $ar['黑色'][$i+1][$z-1]    就是了
    改变就是把找到的重新赋值而已
      

  2.   

    你发的私信看不到
    Disallowed Key Characters.你不是在宣扬些什么XXX吧?哈哈
    有什么在这里问,我难得看一次私信
      

  3.   

    根据我现在的数组结构,帮我重新拆分一下呗,根据我那上面的条件要求,帮我写一下php语法,我是php初学者,真的不太懂,帮帮忙呗!
      

  4.   

    用原来的代码改成这样,可以更简单点,不过懒得想了
    foreach(explode('###',$s) as $v){
      $arr = explode('@@@/',$v);
      $k = array_shift($arr);
      $p = $q = array();
      foreach($arr as $r) {
      $t = explode('/', trim($r, '/'));
      $p = array_shift($t);
      $q[$p] = $t;
      }
      $ar[$k] = $q;  
      
    }
    print_r($ar);那最终 $ar[颜色][尺寸?][位置-1] 就是你要的数据
      

  5.   

    根据上面所说,如何找到key,,整个完整的 php语法怎么写?帮我一次性写完了,我真的不懂!