簡體   English   中英

如何使用PHP搜索數組中的鍵值是否存在於另一個數組中?

[英]How to search if the key value in an array exists in another array, using PHP?

我需要幫助。 我有兩個數組。 我需要檢查第二個數組中是否存在第一個數組中的值。 數組如下:

$maindata=array(array('id'=>3),array('id'=>7),array('id'=>9));
$childata=array(array('id'=>7),array('id'=>11),array('id'=>3),array('id'=>123));

在這里,我需要檢查第一個數組中的每個值是否存在於第二個數組中。 如果是,則應每次返回true否則返回false

在這里,您可以將in_array()用於PHP。

$maindata=array( array('id'=>3),array('id'=>7),array('id'=>9) );
$childata=array( array('id'=>7),array('id'=>11),array('id'=>3),array('id'=>123) );

foreach( $maindata as $key => $value )
{
  if( in_array( $value, $childata ) )
  {
    echo true;
  }
  else
  {
    echo false;
  }
}

您也可以刪除全部內容,並替換為一行。

echo ( in_array( $value, $childata ) ? true : false );

參考-http : //php.net/manual/zh/function.in-array.php https://code.tutsplus.com/tutorials/the-ternary-operator-in-php--cms-24010

要檢查數組是否包含值:

if (in_array($value, $array)) {
    // ... logic here
}

要檢查數組是否包含某個鍵:

if (array_key_exists($key, $array)) {
    // ... logic here
}

資源資源

以下代碼僅在主數組的所有元素都存在於第二個數組中時才返回true ,否則返回false

$maindata=array(array('id'=>3),array('id'=>7),array('id'=>9));
$childata=array(array('id'=>3),array('id'=>7),array('id'=>11),array('id'=>123));

$match = 0;
foreach( $maindata as $key => $value ) {
  if( in_array( $value, $childata ) ) {
    $match++;
  }
}
if($match == count($maindata)){
    // return true;
} else {
    // return false;
}

使用array_intersect

if(!empty(array_intersect($childata, $maindata)))
{
   //do something
}

要么

$result  = count(array_intersect($childata, $maindata)) == count($childata);

使用array_columnarray_intersect

$first = array_column($maindata, 'id');
$second = array_column($childata, 'id');

//If intersect done, means column are common
if (count(array_intersect($first, $second)) > 0) {
  echo "Value present from maindata in childata array.";
}
else {
  echo "No values are common.";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM