首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以相同的顺序打印两个数组的数据?

如何以相同的顺序打印两个数组的数据?
EN

Stack Overflow用户
提问于 2019-10-06 13:26:48
回答 3查看 239关注 0票数 1

我想在像这样的两个不同的数组中搜索一些数据;

代码语言:javascript
复制
$arr1[]=('2019-10-3', '2019-10-9', '2019-10-10', '2019-10-13', '2019-10-17', '2019-10-21',);

另一个数组是这样的;

代码语言:javascript
复制
for($i=1;$i<31;$i++){ $arr2[]=date('Y').'-'.date('m').'-'.$i; }

现在我想打印到屏幕上,如果$arr1数据在$arr2 '1‘order '0’中,按如下顺序排列

代码语言:javascript
复制
if($arr2['0']==$arr1[0]){echo '1' ;} else {echo '0'}

 '2019-10-1' is not in $arr1 echo '0',
 '2019-10-2' is not in $arr1 echo '0',
 '2019-10-3' is in $arr1 echo '1',
'2019-10-4' is not in $arr1 echo '0',
'2019-10-5' is not in $arr1 echo '0',
'2019-10-6' is not in $arr1 echo '0',
'2019-10-7' is not in $arr1 echo '0',
'2019-10-8' is not in $arr1 echo '0',
'2019-10-9' is in $arr1 echo '1',
'2019-10-10' is in $arr1 echo '1',
'2019-10-11' is not in $arr1 echo '0',
....

我使用这段代码,但它不像我想要的那样工作。1,1,1,1,1:İts只打印这个;

代码语言:javascript
复制
for($k=0;$k<5;$k++){
    if(in_array($arr1[$k],$tar)){
       echo '1,';
    } else {
       echo '0,';
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-06 14:07:17

这将是一个稍加改进的变体:

代码语言:javascript
复制
<?php
$arr1 = ['2019-10-3', '2019-10-9', '2019-10-10', '2019-10-13', '2019-10-17', '2019-10-21'];
$arr2 = [];
for($i = 1; $i < 31; $i++) { 
    $arr2[] = sprintf("%d-%d-%d", date('Y'), date('m'), $i);
}

$output = [];
for($k = 0; $k < 30; $k++) {
    $output[] = in_array($arr2[$k], $arr1) ? '1' : '0';
}

echo implode(", ", $output);

在这里,一个稍微慢一些但具有更好的可读性和健壮性的变体:

代码语言:javascript
复制
<?php
$arr1 = ['2019-10-3', '2019-10-9', '2019-10-10', '2019-10-13', '2019-10-17', '2019-10-21'];
$arr2 = [];
for($i=1;$i<31;$i++) { 
    $arr2[$i] = sprintf("%d-%d-%d", date('Y'), date('m'), $i);
}

$output = [];
foreach($arr2 as $val) {
    $output[] = in_array($val, $arr1) ? '1' : '0';
}

echo implode(", ", $output);

这两种变体的输出显然是:

代码语言:javascript
复制
0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
票数 1
EN

Stack Overflow用户

发布于 2019-10-06 13:49:38

你是说像这样?

代码语言:javascript
复制
<?php
$arr1=array ('2019-10-3', '2019-10-9', '2019-10-10', '2019-10-13', '2019-10-17', '2019-10-21');
for($i=1;$i<31;$i++)
{ 
    $arr2[]=date('Y').'-'.date('m').'-'.$i;
}
for($k=0;$k<30;$k++){
      if(in_array($arr2[$k],$arr1)){
             echo '1,';
          } else {
              echo '0,';
          }
       }
?>

 Output: 0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0
票数 1
EN

Stack Overflow用户

发布于 2019-10-06 15:36:58

在创建第二个数组时,只需测试它是否在数组1中。

代码语言:javascript
复制
$arr1 = ['2019-10-3', '2019-10-9', '2019-10-10', '2019-10-13', '2019-10-17', '2019-10-21'];


for($i=1;$i<31;$i++){ 
    $date = date('Y').'-'.date('m').'-'.$i;
    echo $date . ": ";
    if(in_array($date, $arr1)){
         echo "1\n";
    }else{
         echo "0\n";
    }
}

输出:

代码语言:javascript
复制
2019-10-1: 0
2019-10-2: 0
2019-10-3: 1
2019-10-4: 0
2019-10-5: 0
2019-10-6: 0
2019-10-7: 0
2019-10-8: 0
2019-10-9: 1
2019-10-10: 1
2019-10-11: 0
2019-10-12: 0
2019-10-13: 1
2019-10-14: 0
2019-10-15: 0
2019-10-16: 0
2019-10-17: 1
2019-10-18: 0
2019-10-19: 0
2019-10-20: 0
2019-10-21: 1
2019-10-22: 0
2019-10-23: 0
2019-10-24: 0
2019-10-25: 0
2019-10-26: 0
2019-10-27: 0
2019-10-28: 0
2019-10-29: 0
2019-10-30: 0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58257694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档