filtrare array cu valori din alt array 2-dimensional
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
sterica
- Mesaje:285
filtrare array cu valori din alt array 2-dimensional
Salutare,
Am urmatoarele doua array-uri:
primul array este rezultat din query:
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
Cod: Selectaţi tot
Array
(
[0] => Array
(
[IdPersonal] => 18
)
[1] => Array
(
[IdPersonal] => 54
)
[2] => Array
(
[IdPersonal] => 66
)
[3] => Array
(
[IdPersonal] => 67
)
)
si al doilea array:
Cod: Selectaţi tot
Array
(
[107] => Array
(
[nume] => Popescu
[prenume] => Marius
[email] => xxx@xxx.ro
)
[54] => Array
(
[nume] => Popoivi
[prenume] => Ion
[email] => xxx@xxx.ro
)
[10] => Array
(
[nume] => Ionascu
[prenume] => Victor
[email] => xxx@xxx.ro
)
[18] => Array
(
[nume] => Mihai
[prenume] => Ioana
[email] => xxx@xxx.ro
)
)
Valorile din primul array 18, 54, 66, 67 reprezinta cheile celui de-al doilea array.
Cum pot filtra cel de-al doilea array ramanand doar cheile care se regasesc in primul. In cazul de fata sa ramana doar cele doua chei 54 si 18.
Multumesc!
MarPlo
Mesaje:4343
Salut,
Poti sa folosesti functia filter2DArr() din urmatorul exemplu:
Cod: Selectaţi tot
//returns $a2 with keys wich ar values of $k1 key in $a1
function filter2DArr($a1, array $a2, string $ki){
$ar1 =[];
foreach($a1 as $k=>$v) $ar1[] = $v[$ki];
foreach($a2 as $k=>$v){
if(!in_array($k, $ar1)) unset($a2[$k]);
}
return $a2;
}
//Test
$ar1 =[
['IdPersonal'=>24], ['IdPersonal'=>8], ['IdPersonal'=>18], ['IdPersonal'=>45]
];
$ar2 =[
107=>['bcd'],
24=>['val'],
78=>['xyz'],
18=>[890]
];
$ar2 = filter2DArr($ar1, $ar2, 'IdPersonal');
//for debug
echo '<pre>'; var_export($ar2); echo '</pre>';
// [24=>['val'],18=>[890]]
sterica
Mesaje:285
Lucrez pe un server ce are instalat php 5.3 si nu recunoaste string $ki din functie.
Am eliminat string si a ramas doar $ki.
Multumesc mult de ajutor!
Subiecte similare
- Setare valori din array in select tag
JavaScript - jQuery - Ajax
Primul mesaj
Salut am un array cu orele de functionare
$data = array (
'0400' => '04:00 AM',
'0430' => '04:30 AM',
'0500' => '05:00 AM',
'0530'...
Ultimul mesaj
Testeaza urmatorul cod.
Daca ceva mai trebuie schimbat, incearca si tu sa modifici dupa cum stii, in functie de ce vrei sa obtii.
Open:...
- parametru din array in query cu laravel
PHP - MySQL - XML
Primul mesaj
Salutare,
din frontend primesc urmatorul array:
$arrClienti =
dupa care ii fac implode
$idClienti = preg_replace('/ /i', '', implode( , ,...
Ultimul mesaj
Dupa multe sapaturi, am ajuns la concluzia ca nu se poate rula ca parametru o matrice. Doar daca parametrul cu matricea este rulat intr-un loop....
- Indexi valorilor din array care fac suma
PHP - MySQL - XML
Primul mesaj
Salutare,
am un array cu urmatoarele numere:
arr =
si o variabila, care poate contine numere intregi de la 50 pana 750 (750 este suma...
Ultimul mesaj
Mulțumesc mult marplo, este ceea ce îmi trebuie
- implode(): Passing glue string after array is deprecated
PHP - MySQL - XML
Primul mesaj
Dupa 7 ani !
Acum, revazand o veche aplicatie cu codul Multiple Select Drop Down list cu tabel 3 coloane +1; am constatat ca datorita upgradarii...
Ultimul mesaj
OK ! Eu nu am inteles despre ce parametri era vorba. S-a rezolvat, multumesc pentru promptitudinea cu care mi-ai raspuns ! TOATE CELE BUNE !!!