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:...
-
Id distinct cu insumare valori din array
PHP - MySQL - XML
Primul mesaj
Salutare,
Am un array de obiecte de forma:
$arr =
Cum pot face un array de obiecte cu id-uri distincte dar cu suma pentru cantitate si...
Ultimul mesaj
multumesc foarte mult de ajutor
-
Separare array de obiecte în mai multe array-uri
JavaScript - jQuery - Ajax
Primul mesaj
Am un array de obiecte, si pentru crearea unui grafic trebuie să îl împart în 3 array-uri diferite. Cum se face cu JS?
const dataOverview = ;...
Ultimul mesaj
Este simplu, aplici functia map() .
var series1 = dataOverview.map(x => x.series1);
var series2 = dataOverview.map(x => x.series2);
var...
-
Adaugare array in acelasi array JS
JavaScript - jQuery - Ajax
Primul mesaj
Incerc sa adaug un array in acelasi array in javascript, Dar se pare ca nu functioneaza; al treilea element se adauga incontinuu.
Iata codul:
var...
Ultimul mesaj
Nu functioneaza cum vrei fiindca adaugi aceeași referință la array. De aceea, când array-ul se actualizează, cel din interior va fi si el actualizat....
-
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....
-
Cannot use object of type mysqli_result as array
PHP - MySQL - XML
Primul mesaj
Salut, m-am lovit de aceasta eroare in scriptul meu...
Cannot use object of type mysqli_result as array
<?php
include header.php ;...
Ultimul mesaj
Am vazut ca metoda executeQuery() nu transforma in vreun fel datele de la mysqli (cum am presupus ca le returneaza ca obiect) ci le returneaza direct...