簡體   English   中英

我如何遍歷此php數組

[英]How can I iterate over this php array

我有這個變量INSERTs到DB從HTML形式輸入所連接的文件名。

$insertAttachments->execute( array(':attachment2' => $attachment2) );

現在的問題是它INSERTs雖然輸入設置為允許多個只有一個文件名。 所以我嘗試這樣做:

$uploads = count($attachment2);  //counts the number of attachments
for($i=0; $i<$uploads; $i++){
    $insertAttachments->execute( array(':attachment2' => $attachment2) );
}

這讓我想知道將[$i]放在哪里,以便在array(':attachment2' => $attachment2)迭代?

如果我給它分配一個變量,並像-

$alluploads = array(':attachment2' => $attachment2);
for($i=0; $i<$uploads; $i++){
    $insertAttachments->execute( $alluploads[$i] );
}

它遇到一個錯誤。 有什么想法我應該如何實現嗎? 我正在擴展php 5.3 / slim框架應用程序。

Foreach讓我們遍歷一個關聯數組。

$alluploads = array(':attachment2' => "attachment2");
foreach($alluploads as $key => $value){
    echo "key: " . $key . " Has value: ". $value ."\n";
}

https://3v4l.org/uPBug


這是一個使用array_keys獲取關聯數組鍵並在循環中使用它的for循環示例。

$alluploads = array(':attachment2' => "attachment2");
$keys = array_keys($alluploads);
for($i=0;$i<count($keys);$i++){
    echo "key: " . $keys[$i] . " Has value: ". $alluploads[$keys[$i]] ."\n";
}

https://3v4l.org/45fnM


作為第三個示例,您可以使用array_values刪除關聯鍵。
僅當您知道數組中的所有值都是上載並且應被視為相同時,才應使用此方法。

$alluploads = array(':attachment2' => "attachment2");
$alluploads = array_values($alluploads);
for($i=0;$i<count($alluploads);$i++){
    echo "key: " . $i . " Has value: ". $alluploads[$i] ."\n";
}

https://3v4l.org/IrDrv

您可以使用foreach循環,這樣就不需要計數了,如下所示:

foreach ($attachment2 as $a){
    $insertAttachments->execute( array(':attachment2' => $a['some index with the file path']) );
}

不要忘記更改數組的索引

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM