2010-05-05 3 views
-1

у нас есть эти массивы ....2 одномерный массив

$cities = array("nagpur","kanpur","delhi","chd","Noida","mumbai","nagpur"); 
$names = array("munish","imteyaz","ram","shyam","ankit","Rahul","mohan"); 

Теперь я хочу 2 одномерный массив с именем города, как ключ и все соответствующие имена, как его значения.

<?php 
$cities = array("nagpur","kanpur","nagpur","delhi","kanpur"); 
$names = array("ankit","atul","aman","amit","manu"); 
foreach ($cities as $i => $value) { 
echo "\n"; 

echo $value; 
$city=$value; 
$k=0; 
foreach ($cities as $ii => $m) { 
    If($city==$m) 
{ 
    echo$names[$ii] ; 
    $final[$i][$k]=$names[$ii]; 


    $arr = array($city => array($k =>$names[$ii])); 
    $k++; 
} 

} 
echo"\n<tr></tr>"; 
} 

Ват я попытался это this.but оно не work.help мне

+2

Откуда вы знаете, какие имена принадлежат городу? Можете ли вы привести пример того, как должен выглядеть результирующий массив? Вы можете использовать array_combine, как предлагает Johannes, но это создаст одномерный массив, поэтому я не уверен, что вы хотите ... –

+0

как для nagpur значения будут munish и mohan –

ответ

0

Вы не можете ожидать, PHP, чтобы догадаться, как пару тех, теперь вы можете?

То, что вы на самом деле хотите сделать это:

$final=array(
    "nagpur" => array("munish","imteyaz"), 
    "kanpur" => array("ram","shyam"), 
    etc. 
); 

затем, если необходимо также отдельные массивы, вы строите те итерируя $final один, а не наоборот.

полный код:

$final=array(
    "nagpur" => array("munish","imteyaz"), 
    "kanpur" => array("ram","shyam"), 
); 

$cities=array(); 
$names=array(); 
foreach ($final as $city => $nnn) { 
    array_push($cities,$city); 
    foreach ($nnn as $nn) { 
     array_push($names,$nn); 
    } 
} 
+0

может у вас описать это немного больше plz .... Я не понимаю. –

+0

вот он, я добавил вторую часть кода –

2

Попробуйте это:

<?php 
$cities = array("nagpur","kanpur","nagpur","delhi","kanpur"); 
$names = array("ankit","atul","aman","amit","manu"); 

$arr = array(); 
foreach($cities as $key=>$city) { 
    $arr[$city][] = $names[$key]; 
} 
echo "<pre>"; 
print_r($arr); 
?> 

Пусть знают, как она идет.

+0

thnx :) он отлично работает. не могли бы вы помочь мне с еще одной штукой. Я хочу сортировать имена в алфавитном порядке –

+0

как для nagpur это shd меня первый аман, а затем ankit –

+0

foreach ($ arr as & $ values) { sort ($ values); } Должен сортировать. Знайте, работает ли это. Также подумайте о том, чтобы дать ответ и принять ответ, если он делает то, что вам нужно. – pinaki

Смежные вопросы