Ilişkisel dizi olsun sadece o anahtarlar belirtilen elemanlar

3 Cevap php

Geç oldu ve ben bunu çok basit bir soru olduğunu biliyorum ama şu anda ben bir fikir ve son yakındır yok ..

Ben iki dizi var:

$array1 = array(
  'a' => 'asdasd',
  'b' => 'gtrgrtg',
  'c' => 'fwefwefw',
  'd' => 'trhrtgr',
);
$array2 = array(
  'b', 'c'
);

İkinci diziden tuşları ile doç dizinin bir bölümünü almak için işlevin adı neydi?

$result = array(
  'b' => 'gtrgrtg',
  'c' => 'fwefwefw',
);

Teşekkürler!

3 Cevap

Bu deneyin:

array_intersect_key($array1, array_flip($array2)).

Ben böyle bir işlevi olduğunu düşünüyorum, bu yüzden birini uygulayacak:

function array_filter_keys($array, $keys) {
  $newarray = array();
  foreach ($keys as $key) {
    if (array_key_exists($key, $array)) $newarray[$key] = $array[$key];
  }
  return $newarray;
}

Ben orada olmadığını görmek için merak ediyorum bir o inşa yapar. İşte ben bunu yapmak istiyorum nasıl.

$result = array();
foreach ($array2 as $key) {
  if (array_key_exists($key, $array1) {
    $result[$key] = $array1[$key];
  }
}