v2.5.2
Giriş yap

PHP ile İki Diziyi Karşılaştırıp Eksikleri Ekleme

redline
248 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhaba PT.

İki dizim var. İlk diziye devamlı ekleyeceğim kısımlar olacak. İkinci diziye de ilk diziye eklediğim kısımları eklemem gerekiyor.


$yetkilerListe = [
  "Ürünler",
  "Siparişler",
  "Blog",
  "Ayarlar"
];

$yetkiler = [
  "Siparişler" => [
    "view" => 1,
    "add" => 1,
    "edit" => 1,
    "delete" => 0
  ],
  "Ayarlar" => [
    "view" => 1,
    "add" => 1,
    "edit" => 1,
    "delete" => 0
  ]
];

// İkisini birleştirince almak istediğim sonuç;

$birlesen = [
  "Ürünler" => [
    "view" => 0,
    "add" => 0,
    "edit" => 0,
    "delete" => 0
  ],
  "Siparişler" => [
    "view" => 1,
    "add" => 1,
    "edit" => 1,
    "delete" => 0
  ],
  "Blog" => [
    "view" => 0,
    "add" => 0,
    "edit" => 0,
    "delete" => 0
  ],
  "Ayarlar" => [
    "view" => 1,
    "add" => 1,
    "edit" => 1,
    "delete" => 0
  ]
];

Yukarıda vermiş olduğum örnekte $yetkilerListe dizimdeki başlıklar $yetkiler dizimdeki başlıklarla karşılaştırılıp $yetkilerListe dizimde olmayan başlıklarıda $yetkiler dizime ekleyip view,add,edit,delete değerlerini 0 olarak $birlesen dizisindeki gibi çıktısını almaya çalışıyorum. Ancak önceden olan başlıkların içindeki değerler değişmeyecek.

Umarım anlatabilmişimdir. :)

Cevap yaz
Cevaplar (2)
ebykdrms
538 gün önce
$birlesen = [];
foreach($yetkilerListe as $item) {
    if(isset($yetkiler[$item])) $birlesen[$item] = $yetkiler[$item];
    else $birlesen[$item] = ["view" => 0, "add" => 0, "edit" => 0, "delete" => 0];
}
redline
538 gün önce

@ebykdrms hocam çok teşekkür ederim bir türlü kuramamıştım mantığı. :))