朋友抬一手

朋友抬一手 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

朋友抬一手 赞了回答 · 2019-10-30

解决求PHP的多维数组嵌套遍历指定格式的算法

// 格式化数据
function format($data) {
    $keys = array_keys($data);
    $values = array_values($data);

    $result = [];
    foreach(Descartes($values) as $item) {
        foreach($item as $index => $row) {
            foreach($keys as $key) {
                if (in_array($row, $data[$key])) {
                    $item[$key] = $row;
                    unset($item[$index]);
                    break;
                }
            }
        }
        $result[] = $item;
    }

    return $result;
}

// 计算笛卡尔积
function Descartes($data) {
    $result = array_chunk(array_shift($data), 1);
    do {
        $temp = array();
        $next = array_shift($data);
        foreach($result as $first) {
            foreach(array_chunk($next, 1) as $second) {
                $temp[] = array_merge($first, $second);
            }
        }
        $result = $temp;
    } while($data);

    return $result;
}

$data = [
    '尺寸' => ['Big', 'small'],
    '颜色' => ['yellow', 'red'],
    '高度' => ['100', '50'],
];
print_r(format($data));

关注 4 回答 2

朋友抬一手 关注了问题 · 2019-10-25

解决求PHP的多维数组嵌套遍历指定格式的算法

有一个二维数组

array(2) {
  ["尺寸"]=>
  array(2) {
    [0]=>
    string(3) "Big"
    [1]=>
    string(5) "small"
  }
  ["颜色"]=>
  array(2) {
    [0]=>
    string(6) "yellow"
    [1]=>
    string(3) "red"
  }
   ["高度"]=>
  array(2) {
    [0]=>
    string(6) "100"
    [1]=>
    string(3) "50"
  }
}

需要实现一个遍历每个key出一个元素,这里面的规格可能有很多,比如颜色尺寸长度等等, 然后组成一个新的包含所有组合的排列

 [
 [
    颜色:'yellow',
    尺寸:"Big",
    高度 :'100',
 ],
 [
    颜色:'yellow',
    尺寸:"red",
    高度 :'100',
 ], [
    颜色:'yellow',
    尺寸:"small",
    高度 :'',
 ], [
    颜色:'red',
    尺寸:"small",
    高度 :'',
 ],
 ]
 

大概这种数组格式,所以求一个算法,现在我是只能遍历拼接但是做不来数组。

关注 4 回答 2

朋友抬一手 提出了问题 · 2019-10-25

解决求PHP的多维数组嵌套遍历指定格式的算法

有一个二维数组

array(2) {
  ["尺寸"]=>
  array(2) {
    [0]=>
    string(3) "Big"
    [1]=>
    string(5) "small"
  }
  ["颜色"]=>
  array(2) {
    [0]=>
    string(6) "yellow"
    [1]=>
    string(3) "red"
  }
   ["高度"]=>
  array(2) {
    [0]=>
    string(6) "100"
    [1]=>
    string(3) "50"
  }
}

需要实现一个遍历每个key出一个元素,这里面的规格可能有很多,比如颜色尺寸长度等等, 然后组成一个新的包含所有组合的排列

 [
 [
    颜色:'yellow',
    尺寸:"Big",
    高度 :'100',
 ],
 [
    颜色:'yellow',
    尺寸:"red",
    高度 :'100',
 ], [
    颜色:'yellow',
    尺寸:"small",
    高度 :'',
 ], [
    颜色:'red',
    尺寸:"small",
    高度 :'',
 ],
 ]
 

大概这种数组格式,所以求一个算法,现在我是只能遍历拼接但是做不来数组。

关注 4 回答 2

朋友抬一手 提出了问题 · 2019-09-03

querylist 怎么抓取1688商品单页?

使用querylist配合phantomjs在请求1688商品页面,但是现在遇到提示登录。
使用cookie登录没有什么用,api请求一直没返回
图片描述

图片描述

有能简单说下思路吗,或者做过的,都可以。

关注 4 回答 2

朋友抬一手 提出了问题 · 2018-04-04

两年PHP程序员的技能栈需要哪些?

目前工作有一年半了,业务上的curd也很熟练,高性能mysql也学习过,设计模式也看过,目前在学redis的使用,只是现在比较迷茫,对于以后不知道要怎么去发展,还需要去学习哪些知识来补充。
有能详细说一下两年左右应该会那些技术吗?

关注 22 回答 11

朋友抬一手 提出了问题 · 2018-03-23

YII2怎么调用阿里巴巴的物流api??

现在公司需要获取1688获取交易订单的物流信息
图片描述

下载的sdk文件里面是这种

clipboard.png

有人知道具体是怎么操作这个sdk的吗。

关注 1 回答 0

朋友抬一手 提出了问题 · 2018-03-04

两个多维数组如何查询出满足如下条件的数据

 array(2) {
   [0]=>
   array(4) {
     ["qty"]=>
     string(1) "2"
     ["county"]=>
     string(2) "ID"
     ["sku"]=>
     string(13) "B00208MM01000"
     ["id"]=>
     string(8) "50040019"
   }
   [1]=>
   array(4) {
     ["qty"]=>
     string(1) "2"
     ["county"]=>
     string(2) "ID"
     ["sku"]=>
     string(13) "B00208MM03000"
     ["id"]=>
     string(8) "50040019"
   }
 }
 

这是一个需要查询出来的数组。


array(189) {
 [0]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM01000"
   ["id"]=>
   string(4) "1040"
 }
 [1]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM02000"
   ["id"]=>
   string(4) "1041"
 }
 [2]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM03000"
   ["id"]=>
   string(4) "1042"
 }
 [3]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM01000"
   ["id"]=>
   string(4) "1043"
 }
 [4]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM02000"
   ["id"]=>
   string(4) "1044"
 }
 [5]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM02000"
   ["id"]=>
   string(4) "1045"
 }
 [6]=>
 array(4) {
   ["qty"]=>
   string(1) "1"
   ["county"]=>
   string(2) "ID"
   ["sku"]=>
   string(13) "B00208MM02000"
   ["id"]=>
   string(4) "1046"
 }
 

这是一个总的结果集合。
我需要从第一个数组为条件,查询出第二个总合集中符合qty,county sku相同的值,请问有人知道怎么写的吗?

   foreach ($集合1as $k=>$v){
            foreach ($集合二 as $k2 =>$v2){
                if ($v['qty']==$v2['qty'] && $v['county']==$v2['county'] && $v['sku']==$v2['sku']){
                    $data[$k2][]=$v2['id'];
                }else{
                    //unset($data[$k2]);
                }
            }

        }
        

这是我自己写的,不知道是不是哪里错了,获取的值也不对

关注 3 回答 2

朋友抬一手 关注了用户 · 2018-03-04

array_huang @array_huang

关注 4991

朋友抬一手 关注了用户 · 2018-03-04

pursuitToM @qzuser_57e63ab363787

小前端一枚,请多多指教

关注 598

朋友抬一手 关注了用户 · 2018-03-04

李十三 @lishisan

知道的越多,不知道的越多。

青团社招聘:前端技术专家

简历发至邮箱:lishixuan@qtshe.com

关注 16688

认证与成就

  • 获得 8 次点赞
  • 获得 22 枚徽章 获得 1 枚金徽章, 获得 5 枚银徽章, 获得 16 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2017-01-17
个人主页被 537 人浏览