Показать массив php с последовательными индексами - PullRequest
1 голос
/ 01 июня 2011

У меня проблема: у меня есть два массива, 1 созданный с помощью функции php explode.Что я хочу, чтобы отобразить номер для каждого слова в массиве.Ниже приведен код, который я использую.Причина, по которой я хочу, чтобы я мог связать mp3-файл с каждым словом в списке.Формат ссылки на файл в формате mp3 является следующим: 0000001.mp3, 0000002.mp3 и т. Д.

В настоящее время массивы создают нулевые значения начальных ключей для каждого массива:

$a1=array(0=>"Cat",1=>"Dog",2=>"Horse",3=>"House");
$a2=array(0=>"Bird",1=>"Rat",2=>"Fish");
$a3=array(0=>"Horse",1=>"Dog",2=>"Bird");

Я хочу, чтобы в массивах были ключи, которые продолжаются, чтобы я мог связать их с mp3-файлом, например

$a1=array(0=>"Cat",1=>"Dog",2=>"Horse",3=>"House");
$a2=array(4=>"Bird",5=>"Rat",6=>"Fish");
$a3=array(7=>"Horse",8=>"Dog",9=>"Bird");

проверить строку 15 пс. Я не профессионал в php, и я точно знаю, что есть пара ошибокв коде php.http://www.deen -ul-islam.org / quran-player / quran.php

foreach ($suraText as $aya) {
    $trans = $transText[$ayaNum- 1];
    // remove bismillahs, except for suras 1 and 9
    if (!$showBismillah && $ayaNum == 1 && $sura !=1 && $sura !=9) {
        $aya = preg_replace('/^(([^ ]+ ){4})/u', '', $aya);
        // display waqf marks in different style
        // $aya = preg_replace('/ ([ۖ-۩])/u', '<span class="sign">&nbsp;$1</span>', $aya);
        $surah2 = leading_zeros($sura, 3);
        $ayaNum2 = leading_zeros($ayaNum, 3);
        $aya = explode(' ',$aya);
        echo "<div class=aya>";
        echo "<div class=quran><a href='http://www.everyayah.com/data/Ghamadi_40kbps/$surah2$ayaNum2.mp3' class='sm2_link'><span class=ayaNum>$ayaNum. </span></a>";
        foreach($aya as $key => $aya) { 
        $key = $key+1; ?>
            <a href="http://audio.allahsquran.com/wbw/<?php echo $key ?>.mp3" class="sm2_link"><span class="word"><?php echo $aya ?></span></a>
            <?php }

            echo  "</div>";
            //echo "<div class=trans>$trans </div>";
            echo "</div>";
            $ayaNum++;
        }

Ответы [ 3 ]

3 голосов
/ 01 июня 2011

Используйте ключи в цикле foreach:

foreach($array as $i=>$item) {
     echo $i.' = '.$item.'<br/>'
}

http://php.net/manual/en/language.types.array.php

1 голос
/ 01 июня 2011

Насколько я понимаю ваш вопрос, вы должны использовать код, подобный следующему:

foreach ($suraWords as &$word) {
    $word = substr('0000000'.array_search($word, $dictionary),-7).'.mp3';
}

, где $dictionary - это массив всех слов, которые вы бы узнали, а $suraWords - это массив, содержащий разнесенную суру.

Таким образом, все ваши слова переведены на соответствующее имя файла (хотя я не предполагаю ничего об эффективности этого решения).

0 голосов
/ 19 октября 2016

Почему бы вам просто не сделать array_merge из трех массивов?Есть ли какая-то причина, по которой вам нужно хранить информацию в отдельных массивах?

Таким образом, у вас будут все последовательные клавиши, когда они вам нужны.

...