首頁  >  文章  >  後端開發  >  数组问题,在线求解。郁闷一天啦,分不够日后追加~!万分感谢

数组问题,在线求解。郁闷一天啦,分不够日后追加~!万分感谢

WBOY
WBOY原創
2016-06-23 13:50:49722瀏覽

数组一

Array ( [0] => 	Array ( [59] => 上海 [17] => 是 [18] => 一辆 [69] => 福特 [21] => 18-25万 [22] => MPV [23] => 质量 可靠 [24] => 放开刹车 缓步滑行 [26] => 随意 无所谓 [28] => 没有最好 [30] => 无所谓 [31] => 越轻越好 [33] => 有空 就钻 [34] => 尽力 加塞 [35] => 无道路 [36] => 均衡随意 [40] => 经常发生 [43] => 长亮远光灯/雾灯 [44] => 安全气囊上放物品 [45] => 保持车速 [46] => 增加 护板 [47] => 愿意 [48] => 车灯 [49] => 知道 [50] => 低噪音 [51] => 节油轮胎 [52] => 男 [53] => 5-7万 [54] => 1960年之前 )     [1] => Array ( [59] => 其他 )     [2] => Array ( [59] => 上海 [17] => 是 [18] => 一辆 [69] => 别克 [21] => 12-18万 [22] => 两厢轿车 [23] => 价格 实惠 [24] => 随意 无所谓 [26] => 偶尔 [28] => 没有最好 [30] => 稳重不会有误操作 [31] => 越轻越好 [33] => 不得已才改道 [34] => 随意 谦让 [35] => 沙石路 [36] => 轻松舒适 [40] => 从未发生 [43] => 争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯 [44] => 不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅 [45] => 保持车速,定期保养,选节油轮胎 [46] => 更换 专属轮胎,刹车 套装 [47] => 愿意 [48] => 更换 避震,更换 专属轮胎 [49] => 知道 [50] => 刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性 [51] => 操控轮胎 [52] => 男 [53] => 3-5万元 [54] => 1980-1985 ))

数组二

上面的数组与下面的进行比对,数组一的KEY和值分别等于数组二的wjc_bid和wjc_title,数组一的内容(文字部分)替换成数组二的wjc_dhao(数字)。
想尽一切办法没能实现,在线求高手助。十万分感谢~!
不知道是不是无解?


回复讨论(解决方案)

分别贴出两数组的 var_export 的结果

分别贴出两数组的 var_export 的结果


数据有点多,截一部分吧。
数组一:
array ( 0 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '福特', 21 => '18-25万', 22 => 'MPV', 23 => '质量 可靠', 24 => '放开刹车 缓步滑行', 26 => '随意 无所谓', 28 => '没有最好', 30 => '无所谓', 31 => '越轻越好', 33 => '有空 就钻', 34 => '尽力 加塞', 35 => '无道路', 36 => '均衡随意', 40 => '经常发生', 43 => '长亮远光灯/雾灯', 44 => '安全气囊上放物品', 45 => '保持车速', 46 => '增加 护板', 47 => '愿意', 48 => '车灯', 49 => '知道', 50 => '低噪音', 51 => '节油轮胎', 52 => '男', 53 => '5-7万', 54 => '1960年之前', ), 1 => array ( 59 => '其他', ), 2 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '别克', 21 => '12-18万', 22 => '两厢轿车', 23 => '价格 实惠', 24 => '随意 无所谓', 26 => '偶尔', 28 => '没有最好', 30 => '稳重不会有误操作', 31 => '越轻越好', 33 => '不得已才改道', 34 => '随意 谦让', 35 => '沙石路', 36 => '轻松舒适', 40 => '从未发生', 43 => '争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯', 44 => '不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅', 45 => '保持车速,定期保养,选节油轮胎', 46 => '更换 专属轮胎,刹车 套装', 47 => '愿意', 48 => '更换 避震,更换 专属轮胎', 49 => '知道', 50 => '刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性', 51 => '操控轮胎', 52 => '男', 53 => '3-5万元', 54 => '1980-1985', ), 3 => array ( 59 => '其他', ),..................
数组二
array ( 0 => array ( 'wjc_id' => '302', 'wjc_bid' => '59', 'wjc_dhao' => '1', 'wjc_title' => '上海', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 1 => array ( 'wjc_id' => '56', 'wjc_bid' => '17', 'wjc_dhao' => '1', 'wjc_title' => '是', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 2 => array ( 'wjc_id' => '58', 'wjc_bid' => '18', 'wjc_dhao' => '1', 'wjc_title' => '一辆', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 3 => array ( 'wjc_id' => '318', 'wjc_bid' => '69', 'wjc_dhao' => '4', 'wjc_title' => '福特', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 4 => array ( 'wjc_id' => '85', 'wjc_bid' => '21', 'wjc_dhao' => '4', 'wjc_title' => '18-25万', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 5 => array ( 'wjc_id' => '92', 'wjc_bid' => '22', 'wjc_dhao' => '4', 'wjc_title' => 'MPV', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 6 => array ( 'wjc_id' => '97', 'wjc_bid' => '23', 'wjc_dhao' => '4', 'wjc_title' => '质量 可靠', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 7 => array ( 'wjc_id' => '110', 'wjc_bid' => '24', 'wjc_dhao' => '1', 'wjc_title' => '放开刹车 缓步滑行', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 8 => array ( 'wjc_id' => '121', 'wjc_bid' => '26', 'wjc_dhao' => '4', 'wjc_title' => '随意 无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 9 => array ( 'wjc_id' => '126', 'wjc_bid' => '28', 'wjc_dhao' => '1', 'wjc_title' => '没有最好', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 10 => array ( 'wjc_id' => '137', 'wjc_bid' => '30', 'wjc_dhao' => '4', 'wjc_title' => '无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), ...................

这个意思?

$a = array ( 0 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '福特', 21 => '18-25万', 22 => 'MPV', 23 => '质量 可靠', 24 => '放开刹车 缓步滑行', 26 => '随意 无所谓', 28 => '没有最好', 30 => '无所谓', 31 => '越轻越好', 33 => '有空 就钻', 34 => '尽力 加塞', 35 => '无道路', 36 => '均衡随意', 40 => '经常发生', 43 => '长亮远光灯/雾灯', 44 => '安全气囊上放物品', 45 => '保持车速', 46 => '增加 护板', 47 => '愿意', 48 => '车灯', 49 => '知道', 50 => '低噪音', 51 => '节油轮胎', 52 => '男', 53 => '5-7万', 54 => '1960年之前', ), 1 => array ( 59 => '其他', ), 2 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '别克', 21 => '12-18万', 22 => '两厢轿车', 23 => '价格 实惠', 24 => '随意 无所谓', 26 => '偶尔', 28 => '没有最好', 30 => '稳重不会有误操作', 31 => '越轻越好', 33 => '不得已才改道', 34 => '随意 谦让', 35 => '沙石路', 36 => '轻松舒适', 40 => '从未发生', 43 => '争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯', 44 => '不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅', 45 => '保持车速,定期保养,选节油轮胎', 46 => '更换 专属轮胎,刹车 套装', 47 => '愿意', 48 => '更换 避震,更换 专属轮胎', 49 => '知道', 50 => '刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性', 51 => '操控轮胎', 52 => '男', 53 => '3-5万元', 54 => '1980-1985', ), 3 => array ( 59 => '其他', ),);$b = array ( 0 => array ( 'wjc_id' => '302', 'wjc_bid' => '59', 'wjc_dhao' => '1', 'wjc_title' => '上海', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 1 => array ( 'wjc_id' => '56', 'wjc_bid' => '17', 'wjc_dhao' => '1', 'wjc_title' => '是', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 2 => array ( 'wjc_id' => '58', 'wjc_bid' => '18', 'wjc_dhao' => '1', 'wjc_title' => '一辆', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 3 => array ( 'wjc_id' => '318', 'wjc_bid' => '69', 'wjc_dhao' => '4', 'wjc_title' => '福特', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 4 => array ( 'wjc_id' => '85', 'wjc_bid' => '21', 'wjc_dhao' => '4', 'wjc_title' => '18-25万', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 5 => array ( 'wjc_id' => '92', 'wjc_bid' => '22', 'wjc_dhao' => '4', 'wjc_title' => 'MPV', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 6 => array ( 'wjc_id' => '97', 'wjc_bid' => '23', 'wjc_dhao' => '4', 'wjc_title' => '质量 可靠', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 7 => array ( 'wjc_id' => '110', 'wjc_bid' => '24', 'wjc_dhao' => '1', 'wjc_title' => '放开刹车 缓步滑行', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 8 => array ( 'wjc_id' => '121', 'wjc_bid' => '26', 'wjc_dhao' => '4', 'wjc_title' => '随意 无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 9 => array ( 'wjc_id' => '126', 'wjc_bid' => '28', 'wjc_dhao' => '1', 'wjc_title' => '没有最好', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 10 => array ( 'wjc_id' => '137', 'wjc_bid' => '30', 'wjc_dhao' => '4', 'wjc_title' => '无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ),);foreach($a as $key=>$item) {  foreach($item as $k=>$v) {    foreach($b as $tmp)      if($k == $tmp['wjc_bid'] && $v == $tmp['wjc_title'])        $a[$key][$k] = $tmp['wjc_dhao'];  }}print_r($a);
Array(    [0] => Array        (            [59] => 1            [17] => 1            [18] => 1            [69] => 4            [21] => 4            [22] => 4            [23] => 4            [24] => 1            [26] => 4            [28] => 1            [30] => 4            [31] => 越轻越好            [33] => 有空 就钻            [34] => 尽力 加塞            [35] => 无道路            [36] => 均衡随意            [40] => 经常发生            [43] => 长亮远光灯/雾灯            [44] => 安全气囊上放物品            [45] => 保持车速            [46] => 增加 护板            [47] => 愿意            [48] => 车灯            [49] => 知道            [50] => 低噪音            [51] => 节油轮胎            [52] => 男            [53] => 5-7万            [54] => 1960年之前        )    [1] => Array        (            [59] => 其他        )    [2] => Array        (            [59] => 1            [17] => 1            [18] => 1            [69] => 别克            [21] => 12-18万            [22] => 两厢轿车            [23] => 价格 实惠            [24] => 随意 无所谓            [26] => 偶尔            [28] => 1            [30] => 稳重不会有误操作            [31] => 越轻越好            [33] => 不得已才改道            [34] => 随意 谦让            [35] => 沙石路            [36] => 轻松舒适            [40] => 从未发生            [43] => 争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯            [44] => 不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅            [45] => 保持车速,定期保养,选节油轮胎            [46] => 更换 专属轮胎,刹车 套装            [47] => 愿意            [48] => 更换 避震,更换 专属轮胎            [49] => 知道            [50] => 刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性            [51] => 操控轮胎            [52] => 男            [53] => 3-5万元            [54] => 1980-1985        )    [3] => Array        (            [59] => 其他        ))

太乱了, 不好搞!
能搞个像你1楼的数组二那样的结构截图?

这个意思?

$a = array ( 0 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '福特', 21 => '18-25万', 22 => 'MPV', 23 => '质量 可靠', 24 => '放开刹车 缓步滑行', 26 => '随意 无所谓', 28 => '没有最好', 30 => '无所谓', 31 => '越轻越好', 33 => '有空 就钻', 34 => '尽力 加塞', 35 => '无道路', 36 => '均衡随意', 40 => '经常发生', 43 => '长亮远光灯/雾灯', 44 => '安全气囊上放物品', 45 => '保持车速', 46 => '增加 护板', 47 => '愿意', 48 => '车灯', 49 => '知道', 50 => '低噪音', 51 => '节油轮胎', 52 => '男', 53 => '5-7万', 54 => '1960年之前', ), 1 => array ( 59 => '其他', ), 2 => array ( 59 => '上海', 17 => '是', 18 => '一辆', 69 => '别克', 21 => '12-18万', 22 => '两厢轿车', 23 => '价格 实惠', 24 => '随意 无所谓', 26 => '偶尔', 28 => '没有最好', 30 => '稳重不会有误操作', 31 => '越轻越好', 33 => '不得已才改道', 34 => '随意 谦让', 35 => '沙石路', 36 => '轻松舒适', 40 => '从未发生', 43 => '争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯', 44 => '不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅', 45 => '保持车速,定期保养,选节油轮胎', 46 => '更换 专属轮胎,刹车 套装', 47 => '愿意', 48 => '更换 避震,更换 专属轮胎', 49 => '知道', 50 => '刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性', 51 => '操控轮胎', 52 => '男', 53 => '3-5万元', 54 => '1980-1985', ), 3 => array ( 59 => '其他', ),);$b = array ( 0 => array ( 'wjc_id' => '302', 'wjc_bid' => '59', 'wjc_dhao' => '1', 'wjc_title' => '上海', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 1 => array ( 'wjc_id' => '56', 'wjc_bid' => '17', 'wjc_dhao' => '1', 'wjc_title' => '是', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 2 => array ( 'wjc_id' => '58', 'wjc_bid' => '18', 'wjc_dhao' => '1', 'wjc_title' => '一辆', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 3 => array ( 'wjc_id' => '318', 'wjc_bid' => '69', 'wjc_dhao' => '4', 'wjc_title' => '福特', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 4 => array ( 'wjc_id' => '85', 'wjc_bid' => '21', 'wjc_dhao' => '4', 'wjc_title' => '18-25万', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 5 => array ( 'wjc_id' => '92', 'wjc_bid' => '22', 'wjc_dhao' => '4', 'wjc_title' => 'MPV', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 6 => array ( 'wjc_id' => '97', 'wjc_bid' => '23', 'wjc_dhao' => '4', 'wjc_title' => '质量 可靠', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 7 => array ( 'wjc_id' => '110', 'wjc_bid' => '24', 'wjc_dhao' => '1', 'wjc_title' => '放开刹车 缓步滑行', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 8 => array ( 'wjc_id' => '121', 'wjc_bid' => '26', 'wjc_dhao' => '4', 'wjc_title' => '随意 无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 9 => array ( 'wjc_id' => '126', 'wjc_bid' => '28', 'wjc_dhao' => '1', 'wjc_title' => '没有最好', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ), 10 => array ( 'wjc_id' => '137', 'wjc_bid' => '30', 'wjc_dhao' => '4', 'wjc_title' => '无所谓', 'wjc_tiaojian' => '0', 'wjc_jieg' => '0', 'wjc_img' => NULL, ),);foreach($a as $key=>$item) {  foreach($item as $k=>$v) {    foreach($b as $tmp)      if($k == $tmp['wjc_bid'] && $v == $tmp['wjc_title'])        $a[$key][$k] = $tmp['wjc_dhao'];  }}print_r($a);
Array(    [0] => Array        (            [59] => 1            [17] => 1            [18] => 1            [69] => 4            [21] => 4            [22] => 4            [23] => 4            [24] => 1            [26] => 4            [28] => 1            [30] => 4            [31] => 越轻越好            [33] => 有空 就钻            [34] => 尽力 加塞            [35] => 无道路            [36] => 均衡随意            [40] => 经常发生            [43] => 长亮远光灯/雾灯            [44] => 安全气囊上放物品            [45] => 保持车速            [46] => 增加 护板            [47] => 愿意            [48] => 车灯            [49] => 知道            [50] => 低噪音            [51] => 节油轮胎            [52] => 男            [53] => 5-7万            [54] => 1960年之前        )    [1] => Array        (            [59] => 其他        )    [2] => Array        (            [59] => 1            [17] => 1            [18] => 1            [69] => 别克            [21] => 12-18万            [22] => 两厢轿车            [23] => 价格 实惠            [24] => 随意 无所谓            [26] => 偶尔            [28] => 1            [30] => 稳重不会有误操作            [31] => 越轻越好            [33] => 不得已才改道            [34] => 随意 谦让            [35] => 沙石路            [36] => 轻松舒适            [40] => 从未发生            [43] => 争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯            [44] => 不系安全带,穿拖鞋开车,开车抽烟喝饮料,不使用儿童座椅            [45] => 保持车速,定期保养,选节油轮胎            [46] => 更换 专属轮胎,刹车 套装            [47] => 愿意            [48] => 更换 避震,更换 专属轮胎            [49] => 知道            [50] => 刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性            [51] => 操控轮胎            [52] => 男            [53] => 3-5万元            [54] => 1980-1985        )    [3] => Array        (            [59] => 其他        ))



版主幸苦
这多个参数怎么替换?
[50] => 刹车 不打滑,转弯 无振动,操控 灵敏,操控转弯 精准,更耐磨,刹车 距离短,防扎 防刺,高速 稳定性

不太明白你的意思

不太明白你的意思



一个KEY对应多个参数,参数中间是豆号分隔的。是不是要多遍历查询呢?

多个参数的替换规则呢?

这么多数据,实在看着很乱,能不能少点数据??

多个参数的替换规则呢?


一样的,数组一的KEY和值分别等于数组二的wjc_bid和wjc_title。

foreach($a as $key=>$item) {  foreach($item as $k=>$v) {    $t = explode(',', $v);    foreach($b as $tmp)      if($k == $tmp['wjc_bid'] && in_array($tmp['wjc_title'], $t))        $a[$key][$k] .= ':'.$tmp['wjc_dhao'];  }}print_r($a);

foreach($a as $key=>$item) {  foreach($item as $k=>$v) {    $t = explode(',', $v);    foreach($b as $tmp)      if($k == $tmp['wjc_bid'] && in_array($tmp['wjc_title'], $t))        $a[$key][$k] .= ':'.$tmp['wjc_dhao'];  }}print_r($a);




版主。。。完全停不下来,怎么变成循环这么多次,且中文没替换。
求解决

我有意这么写的,目的就是要你检查你的规则是否合适!

我有意这么写的,目的就是要你检查你的规则是否合适!


规则应该问题,数组二的数据是根据数组一在数据库里查出来的。

你说只是替换,但[43] 就存在 1、3、7 多个值,那么该替换成哪个呢?

你说只是替换,但[43] 就存在 1、3、7 多个值,那么该替换成哪个呢?


原来 “争抢同一车道,肆意抛洒垃圾,变道拐弯不打灯”替换成 “1,3,7”这种格式。

你说只是替换,但[43] 就存在 1、3、7 多个值,那么该替换成哪个呢?


比对数组要过滤重复是吧,改成这样?

foreach($a as $key=>$item) {  foreach($item as $k=>$v) {    $t = explode(',', $v);    foreach($b as $tmp)      if($k == $tmp['wjc_bid'] && in_array($tmp['wjc_title'], $t))        $a[$key][$k] = join(','.$tmp['wjc_dhao']);  }}print_r($a);

改成这样报错。。。求解

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn