使用PHP的Foreach循环和if语句

时间:2020-07-27 00:58:11

标签: php

我想编辑一个JSON对象,因此使方法称为<div class="cards-container"> <div class="back-button"> <img src="../../../ASSETS/Visual/back.svg" alt="Back" class="back"> </div> <!-- Individual cards section --> <div class="cards"> <!-- Card-title --> <h2 class="title">Hanuman Statue</h2> <!-- Flexbox for image and content seperately --> <div class="flex-box"> <div class="image-content"> <img src="../../../ASSETS/Visual/nasal_chowk.jpg" alt="Nasal Chowk" class="card-pic" /> </div> <div class="card-content"> <h2 class="hiddentitle">Hanuman Statue<br></h2> <p class="tag-line">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. . . . </p> <!-- Main body which appears on click --> <p class="main-body"><br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. .<br><br> </p> </div> </div> <div class="container"> <div class="image-strip"> <a href="../../../ASSETS/Visual/mohan-chowk.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/mohan-chowk.jpg" alt="" class="swipe"></a> <a href="../../../ASSETS/Visual/swet-bhairav-1.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/swet-bhairav-1.jpg" alt="" class="swipe"></a> </div> </div> </div> <!-- Individual cards section --> <div class="cards"> <!-- Card-title --> <h2 class="title">Hanuman Statue</h2> <!-- Flexbox for image and content seperately --> <div class="flex-box"> <div class="image-content"> <img src="../../../ASSETS/Visual/nasal_chowk.jpg" alt="Nasal Chowk" class="card-pic" /> </div> <div class="card-content"> <h2 class="hiddentitle">Hanuman Statue<br></h2> <p class="tag-line">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. . . . </p> <!-- Main body which appears on click --> <p class="main-body"><br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. .<br><br> </p> </div> </div> <div class="container"> <div class="image-strip"> <a href="../../../ASSETS/Visual/mohan-chowk.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/mohan-chowk.jpg" alt="" class="swipe"></a> <a href="../../../ASSETS/Visual/swet-bhairav-1.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/swet-bhairav-1.jpg" alt="" class="swipe"></a> </div> </div> </div> <!-- Individual cards section --> <div class="cards"> <!-- Card-title --> <h2 class="title">Hanuman Statue</h2> <!-- Flexbox for image and content seperately --> <div class="flex-box"> <div class="image-content"> <img src="../../../ASSETS/Visual/nasal_chowk.jpg" alt="Nasal Chowk" class="card-pic" /> </div> <div class="card-content"> <h2 class="hiddentitle">Hanuman Statue<br></h2> <p class="tag-line">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. . . . </p> <!-- Main body which appears on click --> <p class="main-body"><br><br>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. .<br><br> </p> </div> </div> <div class="container"> <div class="image-strip"> <a href="../../../ASSETS/Visual/mohan-chowk.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/mohan-chowk.jpg" alt="" class="swipe"></a> <a href="../../../ASSETS/Visual/swet-bhairav-1.jpg" data-lightbox="image-1" data-title="My caption"><img src="../../../ASSETS/Visual/swet-bhairav-1.jpg" alt="" class="swipe"></a> </div> </div> </div>,该函数从数据库中找到特定的JSON alterJSON,然后根据参数更改array 所以我的问题是,正如您在此foreach循环中看到的那样,有一个key-values

(if statement)

循环将打印foreach( $decoded as $index => $product ){ print_r('<pre>'); if( $product->$key == $item) { echo ('found'); $decoded[ $index ]->$key = $value; $json = json_encode( $decoded ); $stmt->execute([ ':json' => $json, ':id' => $bid ]); } } ,并通过found查询在$JSON上进行一些更改,这是完美的工作,但是即使存在,JSON也只会找到JSON MySQL在同一个object or item中多于一个item,所以,我想在key-value中创建另一个条件,以检查唯一的statement 称为key-value,那么我该怎么做呢?我做了一些尝试却失败了。

我尝试过的

id

<?php public function AlterJSON( $bid=false, $item=false, $key=false, $Product, $id, $value=false ){ try{ if( $bid && $item && $key && $value && $Product && $this->connected === true ){ $stmt=$this->connection->prepare('select `items` from `bills` where `id`=:id'); $stmt->execute( [ ':id' => $bid ] ); $fetched = $stmt->fetchColumn(); $decoded = json_decode( $fetched ); $stmt=$this->connection->prepare('update `bills` set `items`=:json where id=:id'); foreach( $decoded as $index => $product ){ print_r('<pre>'); if( $product->$key == $item && $product->$id == $Product) { echo ('found'); $decoded[ $index ]->$key = $value; $json = json_encode( $decoded ); $stmt->execute([ ':json' => $json, ':id' => $bid ]); } } return true; } return false; } catch( PDOException $e ){ return $this->errors === true ? $this->error( $e->getMessage() ) : false; } } ?>

function call:-

1 个答案:

答案 0 :(得分:0)

您是否尝试过将$stmt=$this->connection->prepare放入foreach循环中?

可以肯定的是,函数AlterJSON具有变量$Product,但是当您调用此AlterJSON时使用$ProductID时,是否可以同时使用$ProductID两个变量? PHP对变量区分大小写。这样很好,但我认为可读性更好。

如果if( $product->$key中不存在$key,则$product中的其他技巧也会产生错误。是的,您可以尝试一下,但是如果替换项位于N循环中,则将失去进行此更新的可能性。我会在$product->$key之前安装保护,以确保密钥存在。