Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中查找数组中的元素_Php_Arrays - Fatal编程技术网

在PHP中查找数组中的元素

在PHP中查找数组中的元素,php,arrays,Php,Arrays,我不知道我是否以最佳方式管理此阵列 我拥有的阵列是: $bass = $_POST['bass']; $selected_scale = $_POST['scale']; $major_scales = array ( array("C","D","E","F","G","A","B","C","D","E","F","G","A","B",), array("C#","D#","E#","F#","G#","A#","B#","C#","D#","E#","F#","

我不知道我是否以最佳方式管理此阵列

我拥有的阵列是:

$bass = $_POST['bass'];
$selected_scale = $_POST['scale'];
$major_scales = array 
    (
    array("C","D","E","F","G","A","B","C","D","E","F","G","A","B",),
    array("C#","D#","E#","F#","G#","A#","B#","C#","D#","E#","F#","G#","A#","B#",),
    array("Db","Eb","F","Gb","Ab","Bb","C","Db","Eb","F","Gb","Ab","Bb","C",),
    array("D","E","F#","G","A","B","C#","D","E","F#","G","A","B","C#"),
    array("D#","E#","F##","G#","A#","B#","C##","D#","E#","F##","G#","A#","B#","C##"),
    array("Eb","F","G","Ab","Bb","C","D","Eb","F","G","Ab","Bb","C","D"),
    array("E","F#","G#","A","B","C#","D#","E","F#","G#","A","B","C#","D#"),
    array("E#","F##","G##","A#","B#","C##","D##","E#","F##","G##","A#","B#","C##","D##"),
    array("Fb","Gb","Ab","Bbb","Cb","Db","Eb","Fb","Gb","Ab","Bbb","Cb","Db","Eb"),
    array("F","G","A","Bb","C","D","E","F","G","A","Bb","C","D","E"),
    array("F#","G#","A#","B","C#","D#","E#","F#","G#","A#","B","C#","D#","E#"),
    array("Gb","Ab","Bb","Cb","Db","Eb","F","Gb","Ab","Bb","Cb","Db","Eb","F"),
    array("G","A","B","C","D","E","F#","G","A","B","C","D","E","F#"),
    array("G#","A#","B#","C#","D#","E#","F##","G#","A#","B#","C#","D#","E#","F##"),
    array("Ab","Bb","C","Db","Eb","F","G","Ab","Bb","C","Db","Eb","F","G"),
    array("A","B","C#","D","E","F#","G#","A","B","C#","D","E","F#","G#"),
    array("A#","B#","C##","D#","E#","F##","G##","A#","B#","C##","D#","E#","F##","G##"),
    array("Bb","C","D","Eb","F","G","A","Bb","C","D","Eb","F","G","A"),
    array("B","C#","D#","E","F#","G#","A#","B","C#","D#","E","F#","G#","A#"),
    array("B#","C##","D##","E#","F##","G##","A##","B#","C##","D##","E#","F##","G##","A##"),
    array("Cb","Db","Eb","Fb","Gb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Ab","Bb")
    );
$bass
是一个字符串,与数组中的字符串类似。
$selected_scale
只是一个数字

我要做的是在
$selected\u scale
位置的其中一个数组中找到
$bass
。基本上,
$bass=$major\u scale[$selected\u scale]
。因此,我想创建一个循环,以获取之后的元素

但我不知道在这种情况下该如何处理。我查阅了互联网上的所有信息,并尝试了各种解决方案,但都没有成功。我想知道我该怎么做。谢谢

尝试使用下一个循环:

// if value exists in mentioned index
if (in_array($bass,$major_scales[$selected_scale])){
    // index of that value in that array
    $tmp_ind = array_search($bass,$major_scales[$selected_scale]);

    // length of the array
    $len = count($major_scales[$selected_scale]);

    // store values after this value
    $res = [];
    for ($i=$tmp_ind;$i<$len;$i++){
        $res[$i] = $major_scales[$selected_scale][$i];
    }
}
print_r($res);

定义“获取之后的元素”。你想要的结果是什么?如果你写
$bass=$major\u scale[$selected\u scale]
,那么
$bass
将是一个字符串数组(假设$selected\u scale是一个对应于$selected\u scale索引之一的数字)。因此,您可以循环遍历它以获得所有单个字符串值。
foreach($major_scales as $ar){
    if ($ar[$selected_scale] == $bass){ 

        // length of the array
        $len = count($ar);

        // store values after this value
        $res = [];
        for ($i=$selected_scale;$i<$len;$i++){
            $res[$i] = $ar[$i];
        }
    }
} 
print_r($res);