如何拆分一串管道分隔值并返回一个数组?

时间:2017-03-21 00:48:50

标签: javascript php arrays

我有一个如下数组:

<?php 
if( in_array( 'gb',     get_field('rights_management_control_by_continent_europe') ) or 'gb' ==     get_field('rights_management_control_by_continent') ) {
?>   

STUFF HERE

<?php } ?>

我试图找到一种方法来剥离管道并将它们分别变成一个数组。

这是输出结果的代码。

   public function register($username, $password, $email, $firstName, $lastName)
{
    $time = time();
    $ip = $_SERVER['REMOTE_ADDR']; // getting the users IP address
    $email_code = $email_code = uniqid( 'code_', true ); // Creating a unique string.
    $crypt = Bcrypt::genHash( $password );  // un-hast the password

    try {
        $sql = "INSERT INTO users (`user_username`, `user_password`, `user_email`, `user_ip`, `user_creation_date`, `user_email_code`, `user_first_name`, `user_last_name`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
        $this->db->prepare( $sql )->execute( array($username, $crypt, $email, $ip, $time, $email_code, $firstName, $lastName) );

        mail( $email, 'Please activate your account', "Hello $firstName ,
        \r\nThank you for registering with us. 
        \r\n Username :  $username 
        \r\n Password :  $password 
        \r\n Please visit the link below so we can activate your account:\r\n\r\n
         http://example.com/Activate/$email/$email_code/
         \r\n\r\n--" . SITE_ROOT );

    } catch (\Exception $e) {
        echo $e->getMessage();

        throw new \Exception( "Sorry, we were unable to create this account. Please try again." );
    }
    return true;
}

出于好奇,这在JavaScript中是否可行?

3 个答案:

答案 0 :(得分:3)

在Javascript中,您可以使用

将字符串拆分为数组
s = "a|b|c"
arr = s.split('|') 

//access your array
arr[0]
arr[1]
.....

答案 1 :(得分:3)

使用PHP explode标记。

<?php
$arr = ["|ad|al|at|ax|ba|be|bg|by|ch|cz|de|dk|ee|es|eu|fi|fo|fr|gb|gg|gi|gr|hr|hu|ie|im|is|it|je|li|lt|lu|lv|mc|md|me|mk|mt|nl|no|pl|pt|ro|rs|ru|se|si|sj|sk|sm|tr|ua|va|"];
$pieces = explode("|", $arr[0]);

由管道符号分隔的每个项目都是离开时的新项目,当您从管道开始时,广告为[1]。

[和]可以启动和关闭数组

答案 2 :(得分:1)

所以你有这个数组,我只是把它放在变量$old_array中:

$old_array = array(0=>"|ad|al|at|ax|ba|be|bg|by|ch|cz|de|dk|ee|es|eu|fi|fo|fr|gb|gg|gi|gr|hr|hu|ie|im|is|it|je|li|lt|lu|lv|mc|md|me|mk|mt|nl|no|pl|pt|ro|rs|ru|se|si|sj|sk|sm|tr|ua|va|");

要在索引0上拆分字符串,我们在$old_array数组的第一个元素上使用explode function

$exploded_array = explode("|", $old_array[0]);

变量$exploded_array现在将包含一个数组,其中所有字母对都是单独的元素:

["","ad","al","at","ax","ba","be",...]

在JavaScript中,它看起来会有所不同,但仍然相似:

var old_array = ["|ad|al|at|ax|ba|be|bg|by|ch|cz|de|dk|ee|es|eu|fi|fo|fr|gb|gg|gi|gr|hr|hu|ie|im|is|it|je|li|lt|lu|lv|mc|md|me|mk|mt|nl|no|pl|pt|ro|rs|ru|se|si|sj|sk|sm|tr|ua|va|"];

var split_array = old_array[0].split('|');

split_array变量将包含所有字母对作为单独的元素:

["","ad","al","at","ax","ba","be",...]