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"
}