2012-03-03 12 views
0

クイック概要:AJAX経由で渡された$_GET( 'foo')の文字列を含むギャラリーを作成しようとしました。タイトルと説明付きの小さなリストを生成します。PHPはGETして配列を生成しますか?

配列に3つの要素を含めることは可能ですか? foreachここでは、 'foo'を使用するlist itemsを生成します。その後、タイトルと説明が続きますが、 '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」を一致するものを見つけて、次の2つの値$ 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

どのようにループして、$ projだけにマッチしたものを見つけ出し、それをgenerateProject()に書き込ませるのですか?このコードは、配列の1つを取り出して構築することを目的としています。いったん別の$ projが渡されると(つまり、初めて 'foo'、次に 'bar')、それが構築されます。それを行う方法はありますか?上記の 'foreach'にある – steve

+0

のように、テストを追加するだけです。' if($ project ['id'] == $ _GET ['id']){/ *すべてを出力* /} ' – rjz

+0

それを置くが、それはその部分を印刷していない。あなたが言及した 'もし'をどこに追加しますか?文全体の 'foreach'または' '' 'の後に? – steve

関連する問題