Php Array Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheMayk
    TheMayk's avatar
    Kayıt Tarihi: 18/Mart/2013
    Erkek

    Bir sayfadan veri çekiyorum ve bunları json olarak çıktı alıyorum, fakat 2 gündür uğraşıyorum yinede istediğim gibi yapamadım. Verileri almakta sorunum yok bunları diziye atıp bazılarında dizi içinde dizi var, bu kısımda sorunum var. Kabaca şöyle açıklayayım, istediğim birden fazla alanları divlerden ayırıyorum, div içinde başlıklar, image urlsi,youtube url si var ve bu başlığa ait birden fazla paragraflar var. Başlıkları diziye attıktan sonra her başlığa göre gerekli paragraflarıda başlık dizinin içine yine dizi olarak atıyorum, fakat çıktı aldığımda ilk dönen diziye ek olarak ikinci dizi ilk dizinin paragraflarınıda ekleyip ikinci dizeye katıyor, sonra üç dört..... bu şekilde gidiyor ekleye ekleye. Ben sadece ilgili başlıktaki ilgili paragrafların eklenmesi istiyorum, yaptığım kodta mantık hatası mı var yoksa kullanmam gereken farklı bir komut mu var anlamadım ve işin içinde çıkamıyorum. Döngü içinde döngü olduğundan art arda ekleme yapıyorum, döngü dışında array_merge denedim oda iki ayrı dizi yapıyor. Anlatım karışık olabilir kusura bakmayın. kod bloğu aşağıda

     

    $prg=explode('<div class="sqs-block html-block sqs-block-html"',$cek); // cek değişkeni data kaynağı

    $sira=0;

    $data=array();

    $top=array();

    foreach ($prg as $parg)  /// başlık ve paragrafların döngüsü

    {

    $sira++;

    if ($sira > 1)

    {

     

    $prga=ara('<div class="sqs-block-content">','</div>',$parg);

    $fotos=ara('<img src="','"',$parg);

    $video=ara('/embed/','?wmode',$parg);

    $youtube=$video[0];

    foreach ($prga as $sonprg) /// Başlıkların döngüsü

    {

    $h3=ara('<h3 style="white-space:pre-wrap;">','</h3>',$sonprg);

    $pclass=ara('<p class="" style="white-space:pre-wrap;">','</p>',$sonprg);

     

    foreach ($pclass as $satirbas)  // başlık altındaki paragrafların döngüsü

    {

    if(!strstr($satirbas, 'podcast')) // içinde podcast geçmeyenleri al

    {

    $paragraf=strip_tags($satirbas);

    $paragraf_ekle=array("metin"=>$paragraf);  

    array_push($top,$paragraf_ekle);         // paragrafları boş bir diziye ekleme

    }

    }

    if (!empty($h3[0]))

    {

    $baslik_ekle = array(

    "h3" => $h3[0],

    "fotograf" => $fotos[0],

        "youtube" => $youtube,

    "paragraf" => $top        // burdada paragrafları dizi içine alıyorum.

    );

    array_push($data,$baslik_ekle); // başlıkları ve paragrafları boş bir diziye ekleme

    }

    }

    }

    }

    echo json_encode($data);

     

     


    Ekran görüntüsü 1 ile işaretlediğim yer olması gereken, fakat 2 ci işaretlediğim yer olmaması gerekir, 3. işaretli yer gibi olmalı. fakat 1 başlığın paragraflarını 2. başlağın paragrafına dahil edip sonra geresini ekliyor.

    Php Array

    TheMayk tarafından 28/Oca/22 16:59 tarihinde düzenlenmiştir

    Sperm Gibi Adamlar Var İnsan Olma İhtimalleri Milyonda Bir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek

    hocam kodların cok karısık ama anladıgım kadarıyla

    başlıkların dongusunun başına

    $top = [];

    eklersen sorunun cozunur gıbı

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    TheMayk
    TheMayk's avatar
    Kayıt Tarihi: 18/Mart/2013
    Erkek
    lazz bunu yazdı

    hocam kodların cok karısık ama anladıgım kadarıyla

    başlıkların dongusunun başına

    $top = [];

    eklersen sorunun cozunur gıbı

    Teşekkürler hocam çok sağolun, beni 2 günlük uğraştan sonunda kurtardınız. Tam istediğim gibi oldu şuan.


    Sperm Gibi Adamlar Var İnsan Olma İhtimalleri Milyonda Bir
Toplam Hit: 1105 Toplam Mesaj: 3
php json array_push array foreach