2012-03-03 3 views
0

Краткий обзор: попытка создать галерею со строкой из $_GET ('foo'), которая была передана через AJAX, а затем сформировать небольшой список из этого, с заголовком и описанием.php GET и генерировать с помощью массивов?

Возможно ли, чтобы массив имел 3 элемента? В foreach здесь он генерирует list items, которые используют «foo», а затем заголовок и описание следуют, но я не знаю, как выбрать подходящее/связанное название/описание, относящееся к «foo». Ниже то, что у меня есть:

<?php function generateProject() { 


$proj = $_GET['proj']; 
$valid_proj = array("deadawesome", "chimaera", "manifesto"); 
if (!in_array($proj, $valid_proj)) { 
} 

echo '<div id="proj-wrapper">'; 
echo '<div id="proj">'; 
echo '<ul id="'.$proj.'">'; 

$imgs = glob("../images/portfolio/$proj/*.jpg"); 

foreach ($imgs as $picture) { 
    // Get only the base filename 
    $picture = basename($picture); 

    // Then build the <li> 
    echo '<li><a href="javascript:void(0);"><img src="../images/portfolio/'.$proj.'/'.$picture.'">'; 
    echo '</li>'; 
} 

echo '</ul>'; 
echo '</div>'; 
echo '</div>'; 

echo '<div class="description">'.$projTitle.' <span class="slash">&nbsp;/&nbsp;</span>'.$projDesc.'</div>'; 

} ?> 

    <?php 
       generateProject(); 
    ?> 

Можно ли сделать массив, как это, а затем найти тот, который соответствует «Foo» и дать следующие два значения $ projTitle и $ projDesc?

$projTitles = array('foo' => 'FooTitle' => 'The description for Foo.', 
        'bar' => 'BarTitle' => 'The description for Bar.', 
        'presto' => 'PrestoTitle' => 'The description for Presto.' 
       ); 
+0

вы хотите многомерный массив я бы догадался. –

ответ

1

Вы хотите массив ассоциативных массивов:

$projects = array(
    array(
    'id' => 'foo', 
    'title' => 'FooTitle', 
    'decription' => 'The description for Foo.' 
), 
    array(
    'id' => 'bar', 
    'title' => 'BarTitle', 
    'description' => 'The description for Bar.' 
), 
    array(
    'id' => 'presto', 
    'title' => 'PrestoTitle', 
    'description' => 'The description for Presto.' 
) 
); 

Вы можете затем цикл через него, и получить доступ к атрибутам каждого элемента массива следующим образом:

foreach($projects as $project) { 
    $id = $project['id']; 
    $title = $project['title']; 
    $description = $project['description']; 

    echo "($id) $title - $description"; 
} 
+0

Awesome. Как бы я прошел цикл и нашел тот, который соответствовал только $ proj, и написал ли это в generateProject()? Этот код предназначен только для выделения одного из массивов и его создания. Когда передается еще один $ proj (т.е. «foo» в первый раз, затем «bar»), он построит его. Есть ли способ сделать это? – steve

+0

в 'foreach' выше, я бы просто добавил тест:' if ($ project ['id'] == $ _GET ['id']) {/ * распечатать все * /} ' – rjz

+0

Хм, пытаясь поместите его, но это не печатает эту часть. Где я могу добавить «если» вы упомянули? После 'foreach' или закрытия'} 'всего утверждения? – steve

Смежные вопросы