这是我的代码。
if(in_array("1", $mod)){
$res=array('First Name','Insertion','Last Name','Lead Country');}
if(in_array("2", $mod)){
$res=array('Landline No:','Mobile No:','Lead Country');}
if(in_array("3", $mod)){
$res=array('City','State','Country','Lead Country');}
if(in_array("4", $mod)){
$res=array('Email','Lead Country');}
return $res;
到此为止它工作正常。但如果数组包含多个值,则说(1,3) 我需要返回1和3的结果。
例如:如果数组是这样的
array([0]=>1 [1]=>3)
然后
$res=array('First Name','Insertion','Last Name','City','State','Country','Lead Country')
但如果有2个领先国家,则只应显示一个如何做到这一点? 请帮助我。
答案 0 :(得分:1)
使用array_merge
:
$res = array();
if(in_array("1", $mod)){
$res=array_merge($res, array('First Name','Insertion','Last Name','Lead Country'));
}
// and so on ...
return $res;
答案 1 :(得分:1)
使用array_merge构建结果......
$res = array();
if(in_array("1", $mod)) {
$res = array_merge($res, array('First Name','Insertion','Last Name','Lead Country'));
}
// etc
答案 2 :(得分:1)
这是一个使用函数添加元素的示例,只有它们不存在时才会使用:
function addItems($items, $arr)
{
foreach($items as $value)
{
if(!in_array($value, $arr))
{
$arr[] = $value;
}
}
return $arr;
}
$res = array();
if(in_array("1", $mod)){
$res = addItems(array('First Name','Insertion','Last Name','Lead Country'), $res);}
if(in_array("2", $mod)){
$res = addItems(array('Landline No:','Mobile No:','Lead Country'), $res);}
if(in_array("3", $mod)){
$res = addItems(array('City','State','Country','Lead Country'), $res);}
if(in_array("4", $mod)){
$res = addItems(array('Email','Lead Country'), $res);}
return $res;
这是另一种方法,它是更多的OOP,可能更合乎逻辑,因为它不会继续传递整个数组,而是使用一个保存数组的对象,并有一个方法来添加它,并获得最终结果:
class ItemsManager
{
protected $items = array();
public function addItems($items)
{
foreach($items as $value)
{
if(!in_array($value, $this->items))
{
$this->items[] = $value;
}
}
}
public function getItems()
{
return $this->items;
}
}
$im = new ItemsManager();
if(in_array("1", $mod)){
$im->addItems(array('First Name','Insertion','Last Name','Lead Country'));}
if(in_array("2", $mod)){
$im->addItems(array('Landline No:','Mobile No:','Lead Country'));}
if(in_array("3", $mod)){
$im->addItems(array('City','State','Country','Lead Country'));}
if(in_array("4", $mod)){
$im->addItems(array('Email','Lead Country'));}
return $im->getItems();