如何使用PHP中的HashMap之类的东西?

时间:2016-10-16 02:58:43

标签: php dictionary post

我从其他网页获取内容,它有两个变量,FromBody。两个变量都是字符串,我将它们都存储在变量中。

$number = $_POST['From'];
$body = $_POST['Body'];

$body包含这样的数据,MT 80, SP 30, UP 45 我想制作相同的字典或散列图。 MT中的键是键,80是其值。

我稍后会将它们存储在数据库中,所以你能告诉我怎么做吗?我是PHP的新手。

1 个答案:

答案 0 :(得分:0)

首先将所有逗号分隔值拆分为数组

$array = preg_split( '/(,\s|,)/', $body);

现在我们想要分隔字母和数字组(例如MT和80)。 所以我们用它们之间的空格分割每一个

$result = array();
for($i=0;$i<count($array);$i++){
    $temp = explode(" ",$array[$i]);
    $result[$temp[0]] = $temp[1];
}

变量$ result将包含关联数组,例如$ result [&#39; MT&#39;] = 80;等

对于数据库,我建议使用PDO(PHP数据对象):

try{
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // Make it show exceptions if something goes wrong
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $query = $conn->prepare("INSERT INTO tableName (key, value) VALUES (:key, :value)");

    foreach($result as $key => $value){
        $query->execute(array(":key"=>$key,":value"=>$value));
    }

}
catch(PDOException $e){
    echo "Error: " . $e->getMessage();
}

这个例子假设您将使用mysql。显然,您需要使用适当的值替换$ servername,$ dbname,$ username,$ password和tableName。