bueno asi quedo mi terjiversado y 'coplicado' revoltijo XD
Tengo dos Arrays:
Código PHP:
$newArr = array(2,3,4,5,array(14,15),array(8,16,7));
$catlist = array(
array('id'=>2,'name'=>"tema 2"),
array('id'=>3,'name'=>"tema 3"),
array('id'=>4,'name'=>"tema 4"),
array('id'=>5,'name'=>"tema del 5"),
array('id'=>14,'name'=>"el tema 14"),
array('id'=>15,'name'=>"15 es mi tema"),
array('id'=>8,'name'=>"tema OCHO"),
array('id'=>16,'name'=>"tema 16"),
array('id'=>7,'name'=>"ultimo tema, 7")
);
Y asi obtengo un tercero donde cambia un valor (numerico por otro de tipo array:
Código PHP:
$newArr2 = array();
$index_newArr2 = 0;
$arrayInner = array();
$index_arrayInner = 0;
foreach ($newArr as $key=>$value){
if(is_array($value)){
$index_arrayInner = 0;
$arrayInner = $value;
foreach($arrayInner as $key=>$value)
{
$arrayInner = $value;
foreach($catlist as $key=>$value)
{
for ($a=0;$a<count($catlist);$a++)
{
if($arrayInner==$catlist[$a]['id'])
{
$newArr2[$index_newArr2][$index_arrayInner]=$catlist[$a];
break;
}
}
}
$index_arrayInner++;
}
}
else
{
// busca valor(\$value) en catlist...
for ($a=0;$a<count($catlist);$a++)
{
if($value==$catlist[$a]['id'])
{
$newArr2[$index_newArr2] = $catlist[$a];
break;
}
}
}
$index_newArr2++;
}
la salida de Array new2 seria entonces:
Código:
Array
(
[0] => Array
(
[id] => 2
[name] => tema 2
)
[1] => Array
(
[id] => 3
[name] => tema 3
)
[2] => Array
(
[id] => 4
[name] => tema 4
)
[3] => Array
(
[id] => 5
[name] => tema del 5
)
[4] => Array
(
[0] => Array
(
[id] => 14
[name] => el tema 14
)
[1] => Array
(
[id] => 15
[name] => 15 es mi tema
)
)
[5] => Array
(
[0] => Array
(
[id] => 8
[name] => tema OCHO
)
[1] => Array
(
[id] => 16
[name] => tema 16
)
[2] => Array
(
[id] => 7
[name] => ultimo tema, 7
)
)
)
Que lio!!, mi granduda es si para buscar dentro de los arrays esta bien ir comparando los valores (if,...) como le hice o si hay alguna sentencia de arrays_php que haga esto mas rapido sin tanto if, asi en bucles?? o hay algun buscar into array y reemplazar ? o como?, o si esto esta bien, pero pueda ser mas simplificado, algun paso que esta de mas