有什么办法可以将Array元素排序为变量?

时间:2020-04-22 10:24:04

标签: php arrays

我编写了一个函数,该函数从数据库中读取属性并在数组中返回值:

public function test($username) {
            $stmt = $this->con->prepare("SELECT * FROM test WHERE username = ?");
            $stmt->bind_param("s",$username);
            $stmt->execute();
            return $stmt->get_result()->fetch_assoc();
        }

我想将数组元素分成变量。

require_once __DIR__.'/DbOperations.php';
$db = new DbOperations(); 
$file_path =$db->test($_POST['username']);
//var_dump($file_path); 
foreach($file_path as $value){
    //echo $value . "<br>";
    $i=0;
    $i=$i+1;
    if ($i=1)
    $username=$value;
    if ($i=2)
    $role=$value;
    if ($i=3)
    $URL=$value;
}
echo $username. $role.$URL."<br>";

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以使用动态变量名:

import cv2
import statistics
import numpy as np
from PIL import Image
import urllib.request
import matplotlib.pyplot as plt
from skimage.metrics import structural_similarity

class CompareImages_n():

    def __init__(self, url_1, url_2):
        self.img_url_1 = url_1
        self.img_url_2 = url_2

    def load_images(self, img_url, flag_color=False):
        req = urllib.request.urlopen(img_url)
        arr = np.asarray(bytearray(req.read()), dtype=np.uint8)
        image = cv2.imdecode(arr, -1) # Load image as it is
        if not flag_color:
            return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # Change color to greyscale
        else:
            return image

    def main_process_ssmi(self):
        ima1 = self.load_images(self.img_url_1)
        ima2 = self.load_images(self.img_url_2)
        (H, W) = ima1.shape
        ima2 = cv2.resize(ima2, (W, H))
        (score, diff) = structural_similarity(ima1, ima2, full=True)
        return score

我正在努力查看为什么这比将它们全部组合成一个好的数组更好,但这可能超出了问题的范围。

您的代码会很费力,因为您在每次迭代中都设置了foreach ($file_path as $key=>$value) { $$key = $value; } ,然后在每个$i=0语句中给它分配了另一个值。阅读有关分配与比较操作的if===之间的区别。

答案 1 :(得分:0)

我认为您正在描述函数#merge two files ld <- melt(rates,id.vars = "Date") library(data.table) setDT(ld) setDT(toConvert) setnames(ld,c("variable","value"),c("currency","rate")) s <- merge(toConvert,ld,all.x = TRUE,by=c("Date","currency")) library(dplyr) df <- s %>% mutate_at(vars(matches("Value")),funs(./rate)) 。它将数组键转换为变量。 https://www.php.net/manual/en/function.extract.php