PHP:如何根据IF/ELSE语句在主ARRAY()中创建单独的ARRAY


PHP: How to create seperate ARRAY() in the main ARRAY() depending on IF/ELSE STATEMENT?

大家好,我在php中的array()中遇到问题。我有一个$大陆$countries下面的(2)$_POST阵列。当系统找到("sia"、"europe"、"america")时,我使用array_componend使用IF/ELSE语句执行,然后我想为每个大陆创建新的数组()array_slice(),因为数组值取决于用户的选择。这是正确的吗?以下示例。

$continents = array('europe','europe', 'asia', 'asia','america','america');
$countries = array('england','spain', 'iraq', 'china','chile','argentina');
$result = array_combine($countries,$continents);
// It this correct?       
if($result == 'asia'){
 // this is I want to execute. To create a new array   
 print_r( array('iraq','china') ); 
}else if($result == 'europe'){
  // this is I want to execute.To create a new array   
  print_r( array('england','spain') ); 
}else if($result == 'america'){
  // this is I want to execute. To create a new array  
  print_r( array('chile','argentina') ); 
}

谢谢大家

您只需要一个循环:

$continents = array('europe', 'europe', 'asia', 'asia', 'america', 'america');
$countries = array('england', 'spain', 'iraq', 'china', 'chile', 'argentina');
echo '<br/>Original Array:<pre>';
print_r(array_combine($countries, $continents));
$cochinada = array_combine($countries, $continents);
echo '</pre><br />';
foreach($cochinada as $key => $value){
    $array2[$value][] = $key;
}
echo '<br/>Final Array:<pre>';
print_r($array2);
echo '</pre>'

输出为:

Original Array:
Array(
[england] => europe
[spain] => europe
[iraq] => asia
[china] => asia
[chile] => america
[argentina] => america
)
Final Array:
Array(
[europe] => Array(
        [0] => england
        [1] => spain
    )
[asia] => Array(
        [0] => iraq
        [1] => china
    )
[america] => Array(
        [0] => chile
        [1] => argentina
    )
)

这个怎么样

$continents = array(
    '0' => 'europe', 
    '1' => 'europe', 
    '2' => 'asia', 
    '3' => 'asia', 
    '4' => 'america', 
    '5' => 'america'
    );
$countries = array(
    '0' => 'england', 
    '1' => 'spain', 
    '2' => 'iraq', 
    '3' => 'china', 
    '4' => 'chile', 
    '5' => 'argentina'
    );
$result = array_combine($countries,$continents);

print_r($result);
// It this correct?       
if($result == 'asia'){
    $new_cont[] = array(
        '0' =>  'iraq',
        '1' =>  'china'
        );
 // this is I want to execute. To create a new array   
    print_r($new_cont); 
}else if($result == 'europe'){
    $new_cont[] = array(
        '0' =>  'england',
        '1' =>  'spain'
        );
 // this is I want to execute. To create a new array   
    print_r($new_cont); 
}else if($result == 'america'){
    $new_cont[] = array(
        '0' =>  'chile',
        '1' =>  'argentina'
        );
 // this is I want to execute. To create a new array   
    print_r($new_cont);
}

读取此

  1. array_combine()
  2. array_merge()
  3. array_diff()