简体   繁体   English

php比较每个数组中的值

[英]php compare value in every array

I have an array like below: 我有一个如下数组:

$number = array(1,2,3,4,5);

I have a value like below: 我有一个如下的值:

$my_num = 2;

I want to compare $my_num variable in every $number array. 我想在每个$ number数组中比较$ my_num变量。

My expected output like this: No, Yes, No, No, No. 我的预期输出如下:不,是,不,不,不。

I tried like this: 我试过这样的:

<?php
if(in_array($my_num, $number))
{
    echo 'Yes';
}
else
{
    echo 'No';
}

But I can only get 'Yes' from above output. 但我只能从上面的输出中得到'是'。

How should I modify it in order to get my expected output? 我应该如何修改它以获得我预期的输出?

Like I said in the comment above, all you need is a foreach to iterate through your array and compare your data. 就像我上面的评论说,所有你需要的是一个foreach通过您的数组进行迭代和比较数据。

foreach($numbers as $num){
    echo ($num == $my_num) ? 'Yes' : 'No';
}

Source: http://php.net/manual/en/control-structures.foreach.php 资料来源: http//php.net/manual/en/control-structures.foreach.php

Here's one option , essentially comparing $my_num to each array value and mapping it to a Yes or No. The commas are for your expected result only. 这是一个选项 ,主要是将$my_num与每个数组值进行比较,并将其映射为是或否。逗号仅用于您的预期结果。

$english = array_map(function($val) use ($my_num) {
    return ($val == $my_num) ? 'Yes' : 'No';
}, $number);
echo implode(', ', $english); // No, Yes, No, No, No

You can use a foreach loop. 您可以使用foreach循环。 It loops through the array assigning the value of the current array member to the variable $num. 它遍历数组,将当前数组成员的值赋给变量$ num。

foreach ($number as $num) {
    if ($num == $my_num) {
        echo 'Yes';
    } else {
        echo 'No';
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM