Php 如何在多维数组中找到相同的值

Php 如何在多维数组中找到相同的值,php,arrays,arraylist,multidimensional-array,Php,Arrays,Arraylist,Multidimensional Array,我需要你的帮助,我有一个数组如下 [["A","Orange"],["B","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]] 我想找到同样的水果,这样结果会更好 A - D: Orange, E: Apple, F: mango, G Banana 如何在多数组中搜索相同的水果?谢谢。将水果名称用作键,并将键用作结果的值 foreach($fruits as $fruit)

我需要你的帮助,我有一个数组如下

[["A","Orange"],["B","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]]
我想找到同样的水果,这样结果会更好

A - D: Orange, E: Apple, F: mango, G Banana

如何在多数组中搜索相同的水果?谢谢。

将水果名称用作键,并将键用作结果的值

foreach($fruits as $fruit)
{
  $o[$fruit[1]][] = $fruit[0];
}
测试代码:

<?php
$fruits = [["A","Orange"],["B","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]];
foreach($fruits as $fruit)
{
  $o[$fruit[1]][] = $fruit[0];
}
var_dump($o);
编辑:

<?php
$fruits = [["A","Orange"],["B","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]];
$fruits2 = [["A","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]];
foreach($fruits2 as $fruit)
{
  $o[$fruit[1]][] = $fruit[0];
}
$o = array_map(function($v){
  $str = '';
  $pre = '';
  $isInSequence = false;
  $item = '';
  foreach($v as $item)
  {
    if($pre != '')
    {
        if(ord($pre) == ord($item) - 1)
        {
            $isInSequence = true;
        }
        else
        {
            if($isInSequence)
                $str = $str . '-';
            else
                $str = $str . ',' . $item;
            $isInSequence = false;
        }
    }
    else
        $str = $str.$item;
    $pre = $item;
  }
  if($isInSequence)
  {
      $str = $str . '-' . $item;
  }
  return $str;
}, $o);
var_dump($o);

创建一个
foreach
loop我已经创建了一个,但是我一直想知道如何匹配同一个水果的名字@如果数组中不存在名称,可以将其添加到数组中。可以给我举个例子吗?我不明白,长官@u_mulderu做不到,这是非法的偏移量类型怎么会是长官?我的意思是,数组会自动找到它吗?请向我解释一下,先生,我是如何表示结果的?A-d:橙色,E:苹果,F:芒果,G香蕉是的,当复制值键按顺序排列时,很容易。但当复制品按顺序进行时,输出应该是什么?非常感谢,先生,它解决了我的问题:D:D#补充道
<?php
$fruits = [["A","Orange"],["B","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]];
$fruits2 = [["A","Orange"],["C","Orange"],["D","Orange"],["E","Apple"],["F","Mango"],["G","Banana"]];
foreach($fruits2 as $fruit)
{
  $o[$fruit[1]][] = $fruit[0];
}
$o = array_map(function($v){
  $str = '';
  $pre = '';
  $isInSequence = false;
  $item = '';
  foreach($v as $item)
  {
    if($pre != '')
    {
        if(ord($pre) == ord($item) - 1)
        {
            $isInSequence = true;
        }
        else
        {
            if($isInSequence)
                $str = $str . '-';
            else
                $str = $str . ',' . $item;
            $isInSequence = false;
        }
    }
    else
        $str = $str.$item;
    $pre = $item;
  }
  if($isInSequence)
  {
      $str = $str . '-' . $item;
  }
  return $str;
}, $o);
var_dump($o);
ei@localhost:~$ php test.php
array(4) {
  ["Orange"]=>
  string(5) "A,C-D"
  ["Apple"]=>
  string(1) "E"
  ["Mango"]=>
  string(1) "F"
  ["Banana"]=>
  string(1) "G"
}